我有多个组合框(具体为:3),每个组合框值取决于前一个组合框的选定值。关于如何在WPF中实现这一点的任何建议?
每个组合框都有列表<>作为其项目来源。
答案 0 :(得分:2)
我们假设您的组合框名称为comboBox1
,comboBox2
和comboBox3
下面我举一个例子。在此基础上,您可以为所有组合框启动事件。
comboBox1.SelectionChanged += new SelectionChangedEventHandler(comboBox1_SelectionChanged);
这是事件调用
void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
comboBox2.SelectedIndex = comboBox1.SelectedIndex;
//do other work here
}
答案 1 :(得分:1)
我的申请表中有类似内容。你必须使用ObservableCollection<>而不是列表<>。
我有2个ComboBoxes,您可以选择在第一个ComboBox中“分组”结果,如果您愿意,可以在第二个ComboBox中进行更详细的说明。
第一个拥有“安全,国家,部门”,第二个拥有证券,国家或部门的名单......取决于第一个选择。
为此,我将组合框绑定到ObservableCollection。当用户在ComboBox1中选择某些东西时,我将从SelectionChanged事件中知道它,并将使用国家,部门或证券填充ComboBox2的ObservableCollection。
ObservableCollection<>然后将“自动”通知comboBox2有新项目,它将刷新。
哦,为了这个工作,你必须使用MVVM模式...但我认为你已经在使用它。
答案 2 :(得分:0)
应该是这样的:
<ComboBox x:Name="cbModels"
ItemsSource="{Binding ElementName=comboBox1,Path=SelectedItem.Orders}"
DisplayMemberPath="OrderId"/>
SelectedItem.Orders
显示在comboBox1
中选择的客户的订单。