所以我有类似下面的数据结构(省略构造函数)
class Child {
public string Name { get; set; }
public int Age { get; set; }
}
class Parent {
public string Name { get; set; }
public List <Child> Children { get; private set; } // never null; list never empty
public Child FavoriteChild { get; set; } // never null; always a reference to a Child in Children
}
List < Parent > Parents;
我想要做的是显示一个DataGridView,其中每一行都是Parent列表中的Parent。每行应该有两列:一个显示父母姓名的文本框和一个包含父母孩子的DataGridViewComboBoxColumn,用户可以从中选择父母最喜欢的孩子。
我想我可以手动完成所有这些工作,但我想通过或多或少的标准数据绑定来完成所有这些工作。将DataGridView绑定到父列表很容易,并且很容易将选定的子节点绑定到FavoriteChild属性。
给我带来困难的部分是,看起来Combo Box专栏想要绑定到所有行上所有组合框内容的一个数据源。我希望组合框的每个实例都绑定到每个父项的子项列表。
我是C#/ Windows Forms的新手,所以我可能会遗漏一些明显的东西。或者可能是“你不能从这里到达那里。”
制作所有孩子的单独列表并按父母过滤它并不太难;我现在正在研究这种可能性。这是可行的,还是有更好的方法?