2012-04-16 34 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} />