GridView显示包含列表的对象列表中的所有记录

时间:2012-08-10 08:52:06

标签: c# wpf gridview

如果有2种类型,A和B

class A 
{
    public string Name { get; set; }
    public List<B> Children { get; set; }
}

class B
{
    public string Name { get; set; }
    public A Parent { get; set; }
}

在我的视图模型中,我有List<A> Items;

我想绑定网格视图,因此事件B有1行显示A.Name,例如。

A.Name       B.Name
  A1           B1
  A1           B2
  A1           B3
  A2           B1
  A3         {NULL}

但是,就像在A3上一样,如果List<B> Children为空,我仍然希望看到A的行。

我唯一能想到的就是拥有第三种类型,例如C包含2个字符串并编写代码来制作它们的列表并绑定到它,我只是希望有更好的方法。

我确实认为我可以使用Items.SelectMany(a => a.B);然后使用Parent.Name但是这不会包含子项为空的A项。

由于

1 个答案:

答案 0 :(得分:0)

您确定需要DataGrid吗? 看起来你正在做一些层次结构,所以我会使用树视图或者你想做什么...我想我不能理解你所以你可以给我一个更好的例子