我有一个ObservableCollection
带有多个对象的MyParent
对象,而这些对象又拥有自己ObservableCollection
的MyChild
对象。现在我想在一个网格视图中显示所有 MyChild
对象,这自然需要一个扁平化的集合。
CompositeCollection看起来很有希望。
问:是否可以将任意数量的集合包装在一个 中CompositeCollection
?
如果没有,有替代方案吗?
我有一个ObservableCollection
带有多个对象的MyParent
对象,而这些对象又拥有自己ObservableCollection
的MyChild
对象。现在我想在一个网格视图中显示所有 MyChild
对象,这自然需要一个扁平化的集合。
CompositeCollection看起来很有希望。
问:是否可以将任意数量的集合包装在一个 中CompositeCollection
?
如果没有,有替代方案吗?
没有必要使用 anyCompositeCollection
来做你想做的事。您可以在简单查询中使用方法MyChild
从所有对象中提取所有对象。试试这个:MyParent
Enumerable.SelectMany
LinQ
using System.Linq;
...
var children = YourParentCollection.SelectMany(i => i.MyChild).ToList();
如果您不熟悉这些Enumerable
扩展方法,您绝对应该研究它们。