根据另一个组合框的选定值填充一个组合框

时间:2012-06-12 05:13:21

标签: .net wpf combobox

我有多个组合框(具体为:3),每个组合框值取决于前一个组合框的选定值。关于如何在WPF中实现这一点的任何建议?

每个组合框都有列表<>作为其项目来源。

3 个答案:

答案 0 :(得分:2)

我们假设您的组合框名称为comboBox1comboBox2comboBox3 下面我举一个例子。在此基础上,您可以为所有组合框启动事件。

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中选择的客户的订单。