任何人都可以帮我设置数据表中的组合框或组合框编辑值吗? 在WinForms中它是这样的:
DataSet dataBases = GetDatabases();
if ((dataBases != null) && (dataBases.Tables[0].Rows.Count > 0))
{
comboBoxDataBases.DisplayMember = "DbName";
comboBoxDataBases.DataSource = dataBases.Tables[0];
if (comboBoxDataBases.FindStringExact(tempDBName) > 0)
{
comboBoxDataBases.SelectedIndex = comboBoxDataBases.FindStringExact(tempDBName);
}
}
else
{
comboBoxDataBases.DataSource = null;
}
如何使用WPF执行相同的功能?
任何人都可以张贴一些简单的例子。谢谢。
答案 0 :(得分:0)
以下是如何在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],
...
};
此外,您可以考虑从上面的XAML中删除Mode=OneWay
,并让更改ComboBox更新您的“tempDbName”属性。总的来说,这会带来更清晰的实施。