2

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

每个组合框都将 list<> 作为其项目源。

4

3 回答 3

2

让我们假设您的组合框的名称是comboBox1comboBox2下面comboBox3 我仅给出一个事件的示例。在此基础上,您可以为所有组合框触发事件。

comboBox1.SelectionChanged += new SelectionChangedEventHandler(comboBox1_SelectionChanged);

这是事件调用

void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    comboBox2.SelectedIndex = comboBox1.SelectedIndex;
//do other work here
}
于 2012-06-12T05:29:06.597 回答
1

我的应用程序中确实有类似的东西。您必须使用 ObservableCollection<> 而不是 List<>。

我有 2 个 ComboBoxes,您可以选择在第一个 ComboBox 中“分组”结果,在第二个 ComboBox 中,您可以根据需要进行更详细的说明。

第一个有“安全、国家、部门”,第二个可以有证券、国家或部门的列表……取决于第一个选择。

为此,我将组合框绑定到 ObservableCollection。当用户在 ComboBox1 中选择某些内容时,我将从 SelectionChanged 事件中知道它,并将用国家、部门或证券填充 ComboBox2 的 ObservableCollection。

然后 ObservableCollection<> 将“自动”通知 comboBox2 有新项目并将刷新。

哦,要让它工作,你必须使用 MVVM 模式......但我假设你已经在使用它了。

于 2012-06-13T13:16:41.747 回答
0

它应该是这样的:

<ComboBox x:Name="cbModels"
 ItemsSource="{Binding ElementName=comboBox1,Path=SelectedItem.Orders}"
 DisplayMemberPath="OrderId"/>

显示在 中选择的客户的SelectedItem.Orders订单comboBox1

于 2012-06-12T05:21:59.233 回答