Привязка данных к полю со списком WPF

Автор: Маниш Двиведи (Manish Dwivedi)

В этой статье я собираюсь объяснить, как привязать поле со списком (ComboBox) с помощью адаптера таблицы TableAdapter.

Сначала создайте новый проект wpf, затем щелкните решение правой кнопкой мыши, выберите новый элемент и выберите набор данных (DataSet), как на рис. 1

Затем перетащите адаптер таблицы TableAdapter с панели инструментов в только что созданный "Dataset1.xsd" как на рис. 2.

После перетаскивания TableAdapter в файл Dataset1.xsd появится мастер настройки TableAdapter.

Выберите соответствующую строку подключения для базы данных в противном случае создайте новую строку подключения (ConnectionString).

После нажатия кнопки "Далее" появится следующий экран, предоставляющий три возможности. Можно выбрать любую из них в соответствии со своими потребностями. Здесь я выбираю вариант "Создать новую хранимую процедуру" и нажимаю кнопку "Далее", что приводит к появлению экрана, показанного на рис. 4.

Можно написать запрос напрямую или с помощью построителя запросов. После написания запроса нажмите кнопку "Далее" и назначьте имя выбранной хранимой процедуре. После нажатия кнопки "Далее" мастер предложит указать метод. Установите флажок "Возвращает DataTable", а затем нажмите кнопки "Далее" и "Готово".

Заключительное окно будет выглядеть следующим образом.

Теперь созданный адаптер таблицы TableAdapter готов к использованию.

Теперь добавьте одно поле со списком (ComboBox) в файл xaml:

<ComboBox Grid.Row="1"  Height="23" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True"   Margin="143,12,185,0" Name="comboBox1" SelectedValue="{Binding Path=id}" DisplayMemberPath="username"  SelectedValuePath="id"   VerticalAlignment="Top" />

Также введите следующий код в XAML.cs для привязки поля со списком. 

private void Window_Loaded(object sender, RoutedEventArgs e)
{
UserDataSetTableAdapters.UserTableAdapter userTableAdapter = new UserDataSetTableAdapters.UserTableAdapter();      comboBox1.ItemsSource = userTableAdapter.GetData();
}

С помощью этого способа можно привязать поле со списком к базе данных.