2012-04-16 70 views
2

我有一个组合框和如下Combobox动态数据显示与项目源选项。如何选择特定项目?

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

我从DB加载的客户信息以及将它们设定为列表框和分配给该组合框如下数据被动态地分配。

clientbox.DataContext = <list> 

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

回答

1
clientbox.SelectedItem = ((ComboBoxItem)clientbox.Items[1]); 
    clientbox.Text = ((ComboBoxItem)clientbox.Items[1]).Content.ToString(); 
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,其类别为Client,其中的属性为Id,Name等等。如果您选择一个项目,SelectedItem属性将是类Client的一个实例。通过将ComboBoxSelectedValuePath属性设置为IdSelectedValue将始终仅包含所选客户端的ID。

绑定:

当然你也可以使用绑定。

<ComboBox x:Name="clientBox" 
    ItemsSource={Binding ClientList}, DisplayMemberPath = "Name" 
    SelectedValuePath="Id" 
    SelectedValue={Binding ActiveClient} />