C# 带有itemsource选项的组合框动态数据显示。如何选择特定项目?
我有一个组合框,数据动态分配如下C# 带有itemsource选项的组合框动态数据显示。如何选择特定项目?,c#,wpf,C#,Wpf,我有一个组合框,数据动态分配如下 <combobox name="clientbox" itemsource={Binding}, displaymemberpath="ClientName" selectedvaluepath="clientid" /> 我正在从DB加载客户机详细信息,并将它们设置为一个列表框,然后分配给组合框,如下所示 clientbox.DataContext = <list> clientbox.Da
<combobox
name="clientbox"
itemsource={Binding},
displaymemberpath="ClientName"
selectedvaluepath="clientid" />
我正在从DB加载客户机详细信息,并将它们设置为一个列表框,然后分配给组合框,如下所示
clientbox.DataContext = <list>
clientbox.DataContext=
运行后,我可以在combox中看到数据。这将选择第0个项目,但我希望默认选择其他项目。如何做到这一点?有几种可能性:
clientbox.SelectedItem = ((ComboBoxItem)clientbox.Items[1]);
clientbox.Text = ((ComboBoxItem)clientbox.Items[1]).Content.ToString();
代码隐藏:
// Setting the 0-based index
clientBox.SelectedIndex = 1;
// Setting the item
clientBox.SelectedItem = activeClient;
// Setting the value (explanation follows..)
clientBox.SelectedValue = activeClientValue
使用SelectedValue
属性,可以定义用于填充组合框的项的属性。例如:您使用具有属性Id
、Name
等的类Client
的项填充组合框。如果选择一个项目,则SelectedItem
属性将是类Client
的实例。通过将组合框的SelectedValuePath
属性设置为Id
,SelectedValue
将始终只包含所选客户端的Id
绑定:
// Setting the 0-based index
clientBox.SelectedIndex = 1;
// Setting the item
clientBox.SelectedItem = activeClient;
// Setting the value (explanation follows..)
clientBox.SelectedValue = activeClientValue
当然,您总是可以使用绑定
<ComboBox x:Name="clientBox"
ItemsSource={Binding ClientList}, DisplayMemberPath = "Name"
SelectedValuePath="Id"
SelectedValue={Binding ActiveClient} />