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