我有问题,而且我不知道如何解决它。我搜索了几个小时,但我卡住了。
我有一个班级:
public class MyClass
{
(...)
public MyClass(string name1, string name2, List<MyClass2> name3)
{
(...)
}
}
public class MyClass2
{
(...)
public MyClass2(int number, string name4)
{
(...)
}
}
问题是 - 如何将MyClass放入DataGridView,DataGridView可以显示名称来自MyClass和MyClass2的列?有可能吗?
答案 0 :(得分:1)
这在DataGridView中有点棘手。通常我会推荐两个并排的DataGridViews,一个用于MyClass列表,另一个用于MyClass DataGridView中活动行的数据绑定对象(MyClass实例)中的MyClass2列表。然后我会设置'selected row changed'事件,这样当你点击第一个DataGridView中的一行时,MyClass2s的子列表将出现在第二个DataGridView中。它很优雅,而且很有效。
如果你正在寻找合适的子行,那么在DataGridView中这将会更加困难。我建议通过手动为MyClass添加一行来欺骗它,并为MyClass列表中的第一个MyClass2添加两个额外的列。然后我会对该列表中的每个MyClass2重复一遍。
DataGridViews不适用于这样的多级别类,因此通常这两个选项中的一个在其位置上运行良好。我真的推荐第一个,因为它更简单。
这个概念类似于我在这个问题的解决方案中所做的:How to display a dictionary which contains a list in a listBox C#