C#List in Class - 如何在DataGridView中显示所有内容

时间:2015-03-26 00:58:19

标签: c# list datagridview

我有问题,而且我不知道如何解决它。我搜索了几个小时,但我卡住了。

我有一个班级:

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的列?有可能吗?

1 个答案:

答案 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#