2

我有一个组合框,数据动态分配如下

<combobox 
    name="clientbox"
    itemsource={Binding}, 
    displaymemberpath="ClientName" 
    selectedvaluepath="clientid" />

我正在从数据库加载客户端详细信息并将它们设置为列表框并分配给组合框,如下所示。

clientbox.DataContext = <list>

运行后我可以在组合框中看到数据。这将选择第 0 个项目,但我想默认选择不同的项目。这个怎么做?

4

2 回答 2

1

有几种可能性:

代码隐藏:

// Setting the 0-based index
clientBox.SelectedIndex = 1;

// Setting the item
clientBox.SelectedItem = activeClient;

// Setting the value (explanation follows..)
clientBox.SelectedValue = activeClientValue

使用该SelectedValue属性,您可以定义用于填充ComboBox. 一个例子:你用具有属性ComboBox的类的项目填充,依此类推。如果您选择一个项目,该属性将是该类的一个实例。通过将 的属性设置为将始终只包含所选客户端的 id。ClientIdNameSelectedItemClientSelectedValuePathComboBoxIdSelectedValue

捆绑:

当然,您始终可以使用绑定。

<ComboBox x:Name="clientBox"
    ItemsSource={Binding ClientList}, DisplayMemberPath = "Name" 
    SelectedValuePath="Id"
    SelectedValue={Binding ActiveClient} />
于 2012-04-16T13:37:24.277 回答
1
  clientbox.SelectedItem =  ((ComboBoxItem)clientbox.Items[1]);
  clientbox.Text = ((ComboBoxItem)clientbox.Items[1]).Content.ToString();
于 2012-04-16T13:27:30.450 回答