我在XAML中有一个带有2个项目组合框的表单:
<ComboBox x:Name="cb_Category" PlaceholderText="Category" HorizontalAlignment="Left" Height="40" Margin="20,88,0,0" VerticalAlignment="Top" Width="437" SelectionChanged="cb_Categoria_SelectionChanged">
<ComboBoxItem Content="Products"/>
<ComboBoxItem Content="Services"/>
</ComboBox>
我将组合框选择的项目转换为字符串,以便可以将其添加到我的数据库并显示在列表中。
private void cb_Category_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (cb_Category.SelectedItem != null)
{
var combo = (ComboBox)sender;
var item = (ComboBoxItem)combo.SelectedItem;
content = item.Content.ToString();
}
}
现在,我要做的就是在列表中选择一个项目时,组合框会选择并显示相同的项目。但是我不知道怎么办?
如您所见,当我单击“网格项目”时,我获得了文本框中除组合框之外的所有值
答案 0 :(得分:0)
要将“列表”项设置为组合框,您需要设置ItemsSource
属性,如下所示:
cb_Category.ItemsSource = yourList;
根据更新后的帖子进行编辑
一旦加载了数据,就可以在列表SelectionChanged
上执行以下操作:
cb_Category.SelectedIndex = cb_Category.Items.IndexOf(myListView.SelectedItem);
如果您的List和ComboBox没有共享相同的数据结构,则可以执行以下操作:
您的列表数据结构:
Public Class MyList
{
public int Property1 {get;set;}
public int Property2 {get;set;}
public string Property3 {get;set;} //Property mapped for ComboBox
public int Property4 {get;set;}
}
您的ComoboBox数据结构:
Public Class MyComboBox
{
public int Property1 {get;set;}
public string Property2 {get;set;} //Property that needs to be display in ComboBox
}
比在列表SelectionChanged
上先在ComboBox
中找到该项目,然后将其设置为“ SelectedIndex”
var selectedItem = myComboBoxDataSource.where(x=>x.Property2.Equals(((MyList)myListView.SelectedItem).Property3));
cb_Category.SelectedIndex = cb_Category.Items.IndexOf(selectedItem);