我有一個ObservableCollection
與MyParent
對象,它們又有自己的ObservableCollection
MyChild
對象。現在我想在網格視圖中顯示全部MyChild
對象,這自然要求展平集合。使用CompositeCollection展平集合的集合?
CompositeCollection看起來很有希望。
問:是否可以在CompositeCollection
中包裝任意數量的集合?
如果不是,是否有替代方案?
我有一個ObservableCollection
與MyParent
對象,它們又有自己的ObservableCollection
MyChild
對象。現在我想在網格視圖中顯示全部MyChild
對象,這自然要求展平集合。使用CompositeCollection展平集合的集合?
CompositeCollection看起來很有希望。
問:是否可以在CompositeCollection
中包裝任意數量的集合?
如果不是,是否有替代方案?
沒有必要使用任何CompositeCollection
來做你想做的。您可以使用簡單的LinQ
查詢中的Enumerable.SelectMany
Method從所有MyParent
對象中提取所有對象MyChild
。試試這個:
using System.Linq;
...
var children = YourParentCollection.SelectMany(i => i.MyChild).ToList();
如果你不熟悉這些Enumerable
擴展方法,你一定要調查他們。
CompositeCollection確實允許您添加任意數量的集合和元素,但這可能不是必需的。我也可以推薦@謝里登的回答你的情況。 – pushpraj 2014-09-04 13:50:56