Связывание WPF DataGridComboBoxColumn с MVVM

Я просмотрел ответы на различные вопросы , но не смог отобразить контент в ответах на проблему, которую я пытаюсь решить. Я сводил его к следующему коду (представителю результата, которого я пытаюсь достичь), и в основном хочу иметь возможность отображать Person.TitleId качестве соответствующего Title.TitleText когда строка не редактируется, и правильно TitleText чтобы он отображал TitleText s в раскрывающемся TitleId и записывал связанный TitleId обратно в запись Person когда он был изменен.

Короче говоря, что я поставил в свой для достижения этого?

App.xaml.cs

 protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var viewModel = new ViewModels.MainWindowViewModel(); var mainWindow = new MainWindow(); mainWindow.DataContext = viewModel; mainWindow.ShowDialog(); } 

MainWindow.xaml

                     

Person.cs

 public class Person { public int TitleId { get; set; } public string LastName { get; set; } public string FirstName { get; set; } } 

Title.cs

 public struct Title { public Title(int titleId, string titleText) : this() { TitleId = titleId; TitleText = titleText; } public string TitleText { get; private set; } public int TitleId { get; private set; } public static List GetAvailableTitles() { var titles = new List<Title>(); titles.Add(new Title(1, "Mr")); titles.Add(new Title(2, "Miss")); titles.Add(new Title(3, "Mrs")); return titles; } }</code> </pre>
<p>  MainWindowViewModel.cs </p>
<pre> <code>public class MainWindowViewModel : ViewModelBase { private ObservableCollection contacts; private List<Title> titles; public MainWindowViewModel() { titles = Title.GetAvailableTitles(); Contacts = new ObservableCollection(); Contacts.Add(new Person() { FirstName = "Jane", LastName = "Smith", TitleId = 2 }); } public List<Title> Titles { get { return titles; } } public ObservableCollection Contacts { get { return contacts; } set { if (contacts != value) { contacts = value; this.OnPropertyChanged("Contacts"); } } } }</code> </pre>
<p>  ViewModelBase.cs </p>
<pre> <code>public class ViewModelBase : INotifyPropertyChanged { protected void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } public event PropertyChangedEventHandler PropertyChanged; }</code> </pre>
</p>	<div class='row'>
			<div class='col'>			
				<ul><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d1%81%d0%b2%d1%8f%d0%b7%d0%b0%d1%82%d1%8c-wpf-datagrid-%d1%81-%d0%bf%d0%b5%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%bd%d1%8b%d0%bc-%d1%87%d0%b8%d1%81%d0%bb%d0%be%d0%bc-%d1%81%d1%82%d0%be.html" rel="bookmark" class="text-dark" title="Как связать WPF DataGrid с переменным числом столбцов?">Как связать WPF DataGrid с переменным числом столбцов?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%b5%d1%81%d1%82%d1%8c-%d0%bb%d0%b8-%d1%81%d0%bf%d0%be%d1%81%d0%be%d0%b1-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b8%d1%82%d1%8c-%d0%b3%d0%b4%d0%b5-%d0%be%d0%b1%d1%8a%d1%8f%d0%b2%d0%bb%d1%8f.html" rel="bookmark" class="text-dark" title="Есть ли способ определить, где объявляется / создается привязка WPF?">Есть ли способ определить, где объявляется / создается привязка WPF?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d1%87%d1%82%d0%be-%d0%be%d0%b7%d0%bd%d0%b0%d1%87%d0%b0%d0%b5%d1%82-binding-path-%d0%b2-%d0%bf%d1%80%d0%b8%d0%b2%d1%8f%d0%b7%d0%ba%d0%b5-wpf.html" rel="bookmark" class="text-dark" title="Что означает «{Binding Path =.}» В привязке WPF?">Что означает «{Binding Path =.}» В привязке WPF?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d1%83%d0%b4%d0%b0%d0%bb%d0%b8%d1%82%d1%8c-%d1%84%d0%b0%d0%b9%d0%bb-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83%d0%b5%d0%bc%d1%8b%d0%b9-%d0%b4%d1%80%d1%83%d0%b3%d0%b8%d0%bc-%d0%bf%d1%80%d0%be.html" rel="bookmark" class="text-dark" title="Удалить файл, используемый другим процессом">Удалить файл, используемый другим процессом</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-synchronizationcontext-current-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d0%be%d0%b3%d0%be-stream%d0%b0-%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d1%81%d1%8f-%d0%bd%d1%83%d0%bb.html" rel="bookmark" class="text-dark" title="Как SynchronizationContext.Current основного streamа становится нулевым в приложении Windows Forms?">Как SynchronizationContext.Current основного streamа становится нулевым в приложении Windows Forms?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%be%d0%bd%d0%b2%d0%b5%d1%80%d1%82%d0%b5%d1%80-%d1%81%d0%b2%d1%8f%d0%b7%d1%8b%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f%d0%bf%d0%b0%d1%80%d0%b0%d0%bc%d0%b5%d1%82%d1%80.html" rel="bookmark" class="text-dark" title="Конвертер связыванияПараметр">Конвертер связыванияПараметр</a></li><li><a class="text-dark" href="https://www.bilee.com/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bf%d0%be%d0%b7%d0%b8%d1%86%d0%b8%d1%8e-%d0%ba%d1%83%d1%80%d1%81%d0%be%d1%80%d0%b0-%d0%ba%d1%83%d1%80%d1%81%d0%be%d1%80%d0%b0-%d0%b2.html" rel="bookmark" class="text-dark" title="Установите позицию курсора / курсора в конец текстового поля WPF с строковым значением">Установите позицию курсора / курсора в конец текстового поля WPF с строковым значением</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%b2-%d0%ba%d0%b0%d0%ba%d0%b8%d1%85-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d1%8f%d1%85-%d0%b7%d0%b0%d0%bc%d0%be%d1%80%d0%b0%d0%b6%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d1%8a%d0%b5.html" rel="bookmark" class="text-dark" title="В каких сценариях замораживание объектов WPF значительно повышает производительность?">В каких сценариях замораживание объектов WPF значительно повышает производительность?</a></li></ul>			</div>
		</div>
<div class="list-group">
	

	

<!-- You can start editing here. -->



	<div class="panel panel-default">
<div class="panel-body">

				      	<p>  Вот рабочий код.  Ключевым моментом здесь было использование <code>SelectedValueBinding</code> вместо <code>SelecteItemBinding</code> . </p>
<pre> <code><datagridcomboboxcolumn Header="Title" SelectedValueBinding="{Binding TitleId}" SelectedValuePath="TitleId" DisplayMemberPath="TitleText"> <DataGridComboBoxColumn.ElementStyle> <style TargetType="ComboBox"> <setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.Titles}"></setter> </style> </DataGridComboBoxColumn.ElementStyle> <DataGridComboBoxColumn.EditingElementStyle> <style TargetType="ComboBox"> <setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.Titles}"></setter> </style> </DataGridComboBoxColumn.EditingElementStyle> </datagridcomboboxcolumn></code> </pre>
</div></div>
</li><!-- #comment-## -->
<div class="panel panel-default">
<div class="panel-body">

				      	<p>  @ Ответ SnowBear работал хорошо для меня.  Но я хочу прояснить детали привязки. </p>
<p>  В примере с @ Rob classы Title и Person используют TitleID.  Поэтому в ответе @ SnowBear в привязке: </p>
<pre> <code>SelectedValueBinding="{Binding TitleId}"</code> </pre>
<p>  мне не сразу стало ясно, какой class и собственность связаны. </p>
<p>  Поскольку атрибут SelectedValueBinding появился на DataGridComboBoxColumn, он привязан к ItemsSource содержащего DataGrid.  В этом случае коллекция контактов Person. </p>
<p>  В моем случае коллекция DataSource DataGrid была отнесена к свойству, которое было названо иначе, чем ValuePath из коллекции ItemSource ComboBox.  Таким образом, значение моего SelectedValueBinding было привязано к другому свойству, чем свойство, указанное в SelectedValuePath из ComboBox. </p>
</div></div>
</li><!-- #comment-## -->

	<div class="navigation">
		<div class="alignleft"></div>
		<div class="alignright"></div>
	</div>
 	
	<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-4943387893641281"
     data-ad-slot="4589029543"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
	
<li><a class="text-dark" href="https://www.bilee.com/itempropertychanged-%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-%d0%bd%d0%b0-%d0%bd%d0%b0%d0%b1%d0%bb%d1%8e%d0%b4%d0%b0%d0%b5%d0%bc%d0%be%d0%bc%d0%ba%d0%be%d0%bb%d0%bb%d0%b5%d0%ba.html" rel="bookmark" class="text-dark" title="ItemPropertyChanged не работает на наблюдаемомколлекции.Почему?">ItemPropertyChanged не работает на наблюдаемомколлекции.Почему?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%b7%d0%b0%d0%ba%d1%80%d1%8b%d1%82%d1%8c-%d0%be%d0%ba%d0%bd%d0%be-%d0%b8%d0%b7-viewmodel.html" rel="bookmark" class="text-dark" title="Закрыть окно из ViewModel">Закрыть окно из ViewModel</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b3%d0%bb%d0%be%d0%b1%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b9-%d0%ba%d0%bb%d0%b0%d0%b2%d0%b8%d0%b0%d1%82%d1%83%d1%80%d1%8b.html" rel="bookmark" class="text-dark" title="Использование глобальной клавиатуры (WH_KEYBOARD_LL) в WPF / C #">Использование глобальной клавиатуры (WH_KEYBOARD_LL) в WPF / C #</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d1%8f-%d0%bc%d0%be%d0%b3%d1%83-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%82%d1%8c-%d0%bf%d1%80%d0%b5%d0%b4%d0%b2%d0%b0%d1%80%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%bf.html" rel="bookmark" class="text-dark" title="Как я могу создать «предварительный просмотр» FlowDocument в приложении WPF?">Как я могу создать «предварительный просмотр» FlowDocument в приложении WPF?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86%d0%b0-vs-%d0%be%d0%ba%d0%bd%d0%be-%d0%b2-wpf.html" rel="bookmark" class="text-dark" title="Страница vs Окно в WPF?">Страница vs Окно в WPF?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d1%80%d0%b0%d0%b7%d0%bc%d0%b5%d1%80-%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%b8-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b8-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82.html" rel="bookmark" class="text-dark" title="Размер времени разработки пользовательского интерфейса WPF">Размер времени разработки пользовательского интерфейса WPF</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2-canvas%d0%b0-%d0%b2-itemcontrol-datatemplate.html" rel="bookmark" class="text-dark" title="Настройка свойств canvasа в ItemControl DataTemplate">Настройка свойств canvasа в ItemControl DataTemplate</a></li><li><a class="text-dark" href="https://www.bilee.com/commandparameters-%d0%b2-contextmenu-%d0%b2-wpf.html" rel="bookmark" class="text-dark" title="CommandParameters в ContextMenu в WPF">CommandParameters в ContextMenu в WPF</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d0%b8%d0%bd%d0%b2%d0%b5%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-booleantovisibilityconverter.html" rel="bookmark" class="text-dark" title="Как инвертировать BooleanToVisibilityConverter?">Как инвертировать BooleanToVisibilityConverter?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d0%be%d1%82%d0%ba%d1%80%d1%8b%d1%82%d1%8c-%d0%bd%d0%be%d0%b2%d0%be%d0%b5-%d0%be%d0%ba%d0%bd%d0%be-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-mvvm-light-toolkit.html" rel="bookmark" class="text-dark" title="Как открыть новое окно с помощью MVVM Light Toolkit">Как открыть новое окно с помощью MVVM Light Toolkit</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82-%d0%bb%d0%b8-%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82-%d0%bf%d1%80%d0%b8%d0%b2%d1%8f%d0%b7%d0%ba%d0%b8-wpf-%d0%bc%d0%b0%d1%80%d0%ba%d0%b5%d1%80.html" rel="bookmark" class="text-dark" title="Изменяет ли атрибут привязки WPF маркер к streamу пользовательского интерфейса?">Изменяет ли атрибут привязки WPF маркер к streamу пользовательского интерфейса?</a></li>
	<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-4943387893641281"
     data-ad-slot="6380623366"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<ul class="pager">
  <li class="previous"><a href="https://www.bilee.com/%d0%bf%d0%b5%d1%80%d0%b5%d1%82%d0%b0%d1%89%d0%b8%d1%82%d0%b5-%d0%be%d0%ba%d0%bd%d0%be-%d0%b1%d0%b5%d0%b7-%d0%bf%d0%be%d0%bb%d0%b5%d0%b9-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-%d0%bc%d1%8b.html" rel="prev">Перетащите окно без полей с помощью мыши</a></li>
  <li class="next"><a href="https://www.bilee.com/%d0%b8%d0%bd%d1%8a%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d1%87%d0%b5%d1%80%d0%b5%d0%bf%d0%b0%d1%85%d0%b8-%d0%bf%d0%be%d0%bb%d0%bd%d0%be.html" rel="next">Инъекция зависимости: Черепахи полностью вниз?</a></li>
</ul>
</div>
     		
</div>

<div class="col-md-4">
     
<div class="input-group">
      <input type="text" class="form-control" placeholder="Search for...">
      <span class="input-group-btn">
        <button class="btn btn-default" type="button">Go!</button>
      </span>
</div>

<div class="panel panel-default">
  <div class="panel-heading">Interesting Posts</div>

<div class="list-group">
<a href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d0%b5%d0%bc%d1%8b%d0%b9-%d1%84%d0%b0%d0%b9%d0%bb-gecko-%d1%81-sel.html" class="list-group-item"><h4 class="list-group-item-heading">Как использовать исполняемый файл gecko с Selenium</h4></a>

<a href="https://www.bilee.com/%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82-%d0%ba%d0%be%d0%b4%d0%b5%d0%ba%d0%b0-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%b0-html5.html" class="list-group-item"><h4 class="list-group-item-heading">атрибут кодека видеотекста html5</h4></a>

<a href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d1%82%d1%8c-%d0%be%d0%b1%d1%80%d0%b0%d1%82%d0%bd%d1%8b%d0%b5-%d0%b2%d1%8b%d0%b7%d0%be%d0%b2%d1%8b-%d0%b2-objective-c.html" class="list-group-item"><h4 class="list-group-item-heading">Как выполнять обратные вызовы в Objective-C</h4></a>

<a href="https://www.bilee.com/%d0%bc%d0%be%d0%b6%d0%bd%d0%be-%d0%bb%d0%b8-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b8%d1%82%d1%8c-%d0%b7%d0%bd%d0%b0%d1%87%d0%be%d0%ba-%d1%80%d0%b0%d0%b4%d0%b8%d0%be%d0%ba%d0%bd%d0%be%d0%bf%d0%ba%d0%b8.html" class="list-group-item"><h4 class="list-group-item-heading">Можно ли изменить значок радиокнопки в группе переключателей андроид</h4></a>

<a href="https://www.bilee.com/bash-29.html" class="list-group-item"><h4 class="list-group-item-heading">Доступ к выходному каналу Bash с помощью 'read'</h4></a>

<a href="https://www.bilee.com/microsoft-word-4.html" class="list-group-item"><h4 class="list-group-item-heading">Как восстановить документ Microsoft Word</h4></a>

<a href="https://www.bilee.com/emacs-%d0%bf%d0%be%d0%bc%d0%be%d0%b3%d0%b8%d1%82%d0%b5-%d0%bc%d0%bd%d0%b5-%d0%bf%d0%be%d0%bd%d1%8f%d1%82%d1%8c-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%84%d0%b0%d0%b9%d0%bb.html" class="list-group-item"><h4 class="list-group-item-heading">Emacs: помогите мне понять управление файлами / буферами</h4></a>

<a href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba%d0%be%d0%b2-%d1%81%d0%b0%d0%bc%d1%8b%d0%b9-%d0%b1%d1%8b%d1%81%d1%82%d1%80%d1%8b%d0%b9-%d1%81%d0%bf%d0%be%d1%81%d0%be%d0%b1-%d0%bd%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d1%82%d1%8c-%d1%84.html" class="list-group-item"><h4 class="list-group-item-heading">Каков самый быстрый способ написать функцию Фибоначчи в Scala?</h4></a>

<a href="https://www.bilee.com/14475.html" class="list-group-item"><h4 class="list-group-item-heading">Перенести настройки пользователя Firefox в другую папку на одном компьютере</h4></a>

<a href="https://www.bilee.com/%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-volatile-%d1%81-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d0%bf%d0%be%d1%82%d0%be%d1%87%d0%bd%d1%8b%d0%bc.html" class="list-group-item"><h4 class="list-group-item-heading">Когда использовать volatile с многопоточным?</h4></a>

<a href="https://www.bilee.com/split-mac-os-x-x434.html" class="list-group-item"><h4 class="list-group-item-heading">Как использовать Split в терминале Mac OS X для разделения файлов непосредственно на другой каталог?</h4></a>

<a href="https://www.bilee.com/x442-11.html" class="list-group-item"><h4 class="list-group-item-heading">Как загрузиться с ОС флеш-накопителя с помощью VirtualBox?</h4></a>

<a href="https://www.bilee.com/19214.html" class="list-group-item"><h4 class="list-group-item-heading">Определить и изменить кодировку имени файла в Windows</h4></a>

<a href="https://www.bilee.com/x43-60.html" class="list-group-item"><h4 class="list-group-item-heading">Как я могу навсегда удалить Мои папки в Windows 7?</h4></a>

<a href="https://www.bilee.com/wii.html" class="list-group-item"><h4 class="list-group-item-heading">Сенсорная панель Wii с ПК</h4></a>


</div>

</div>



</div>
</div>

<div class="alert alert-dismissible alert-info">
  Давайте будем гением компьютера.
</div>
<footer>
        <div class="row">
          <div class="col-lg-12">

            <ul class="list-unstyled">
              <li class="pull-right"><a href="#top">Back to top</a></li>
              <li><a href="/">Bilee</a></li>
              
            </ul>
            <p>Copyright © Bilee - All Rights Reserved.</p>

          </div>
        </div>

      </footer>


    </div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  </body><span style="display:none">
<script type="text/javascript">
var sc_project=11438414; 
var sc_invisible=1; 
var sc_security="dd69a8e4"; 
var scJsHost = (("https:" == document.location.protocol) ?
"https://secure." : "http://www.");
document.write("<sc"+"ript type='text/javascript' src='" +
scJsHost+
"statcounter.com/counter/counter.js'></"+"script>");
</script>
<noscript><div class="statcounter"><a title="hit counter"
href="http://statcounter.com/" target="_blank"><img
class="statcounter"
src="//c.statcounter.com/11438414/0/dd69a8e4/1/" alt="hit
counter"></a></div></noscript>
</span>
</html>