我有一个包含两个项目的XAML组合框的表单:
<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>
我将combobox selected item转换为string,这样它就可以添加到我的数据库中并出现在我的列表中。
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();
}
}
现在我想要做的是,当我选择列表中的一项时,组合框将选择并显示相同的项。但我不知道该怎么做?
正如您所看到的,当我单击一个网格项目时,我将获得除组合框之外的文本框中该项目的所有值
发布于 2018-08-23 13:11:33
为了将列表项设置为您的ComboBox,需要设置ItemsSource
属性,如下所示:
cb_Category.ItemsSource = yourList;
根据更新的帖子进行编辑
加载数据后,您可以在list 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 DataStructure:
Public Class MyComboBox
{
public int Property1 {get;set;}
public string Property2 {get;set;} //Property that needs to be display in ComboBox
}
在列表索引中,首先在ComboBox
中找到项目,然后将其设置为‘`SelectedIndex’。
var selectedItem = myComboBoxDataSource.where(x=>x.Property2.Equals(((MyList)myListView.SelectedItem).Property3));
cb_Category.SelectedIndex = cb_Category.Items.IndexOf(selectedItem);
https://stackoverflow.com/questions/51977340
复制相似问题