首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CompositeCollection整理集合?

使用CompositeCollection整理集合?
EN

Stack Overflow用户
提问于 2014-09-04 13:38:09
回答 2查看 289关注 0票数 0

我有一个ObservableCollection,它有许多MyParent对象,而这些对象又有自己的ObservableCollection of MyChild对象。现在,我想在网格视图中显示所有的MyChild对象,这自然要求一个扁平的集合。

CompositeCollection看起来很有前途。

Q:可以在CompositeCollection中包装任意数量的集合吗?

如果没有,还有其他选择吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-04 13:45:50

没有必要使用任何CompositeCollection来做您想做的事情。您可以在一个简单的MyChild查询中使用方法从所有MyParent对象中提取所有的LinQ对象。试试这个:

代码语言:javascript
复制
using System.Linq;

...

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

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

票数 3
EN

Stack Overflow用户

发布于 2022-07-19 13:57:41

您可以编写这样的转换器:

代码语言:javascript
复制
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    var parent = value as IEnumerable<Parent>;

    // Note: CompositeCollectionView not support grouping。
    var compositeCollection = new CompositeCollection();

    foreach (var child in parent)
    {
        var collectionContainer = new CollectionContainer {
            Collection = child.SomeCollectionProperty;
        };

        compositeCollection.Add(collectionContainer);
    }

    return compositeCollection;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25666987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档