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} />