使用CompositeCollection展平集合集合?

时间:2014-09-04 13:38:10

标签: wpf compositecollection

我有ObservableCollectionMyParent个对象,而这些对象又有ObservableCollectionMyChild个对象。现在我想在网格视图中显示所有 MyChild对象,这自然会要求展平的集合。

CompositeCollection看起来很有希望。

问:是否可以在CompositeCollection中包含任意数量的集合?

如果没有,是否有替代方案?

1 个答案:

答案 0 :(得分:3)

无需使用任何CompositeCollection来执行您想要的操作。您可以使用简单MyChild查询中的Enumerable.SelectMany Method从所有MyParent个对象中提取所有LinQ个对象。试试这个:

using System.Linq;

...

var children = YourParentCollection.SelectMany(i => i.MyChild).ToList();

如果您不熟悉这些Enumerable扩展方法,那么您一定要对它们进行调查。