gpt4 book ai didi

c# - 如何同时绑定(bind)到列表和子列表?

转载 作者:行者123 更新时间:2023-11-30 17:54:18 24 4
gpt4 key购买 nike

我有要绑定(bind)到组合框的表单数据。组合框需要始终显示相同的对象,并绑定(bind)到对象的不同属性,但其中一个只显示所有可能对象的子集。

我的对象可以描述为:

{"q",#1,1},{"w",#1,2},{"e",#1,3},{"r",#2,6},{"t",#3,2},{"y",#3,6} etc

准确地说,第一个组合框显示第一个字段和完整列表:

"q","w","e","r","t","y" etc

第二个组合框显示第三个字段,但仅适用于具有与当前所选对象相似的第二个字段的对象。

如果选择了 {"q",#1,1},它会显示:

1,2,3

如果选择了 {"r",#2,6},它会显示:

6

在任何组合框中选择另一个项目会更改当前选定的项目和(相应地更新其他组合框)。

使用 winforms 数据绑定(bind)执行此操作的最优雅或“正确”的方法是什么? (对我来说,elegat 不会求助于处理当前所选项目的更改)。

最佳答案

这可能会有所帮助:

List<Tuple<string, string, int>> values = new List<Tuple<string, string, int>>();

然后:

comboBox1.DisplayMember = "Item1";
comboBox1.DataSource = values;

comboBox2.DisplayMember = "Item3";

var filter = ((Tuple<string, string, int>)comboBox1.SelectedItem).Item2;

comboBox2.DataSource = values.Where(input => input.Item2 == filter);

关于c# - 如何同时绑定(bind)到列表和子列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com