Вот как это сделать в WPF:
<ComboBox
ItemsSource="{Binding DbTable}" <!-- Get the data from the DataContext -->
SelectedValuePath="{Binding DbName}" <!-- Only desirable if you want to select string values, not table rows -->
SelectedValue="{Binding tempDBName, Mode=OneWay}" > <!-- Initialize value -->
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DbName}" /> <!-- Display the DbName in the dropdown -->
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Предполагается, что для DataContext задан объект, содержащий таблицу, что для типичного проекта WPF будет выполнено с помощью содержащего шаблона, или если на верхнем уровне - код:
this.DataContext = new
{
DbTable = dataBases.Tables[0],
...
};
Также вы можете удалить Mode=OneWay
из XAML выше и позволить изменениям в ComboBox обновить свойство «tempDbName». В целом это приводит к более чистой реализации.