我有两个 ObservableCollections,比如说 ObservableCollection<Cat>
和 ObservableCollections<Dog>
. Cat 和 Dog 都派生自 Pet 类。我想显示所有宠物的列表。我该怎么做呢?我不想创建一个新的ObservableCollection<Pet>
通过从两个源列表中添加项目,因为随着更多的 Cats 和 Dogs 添加到源列表中,该列表将变得陈旧。我可以想到两种方法:
1) 创建一个“装饰器”ObservableCollection
这将两个源集合保持为成员并每次迭代它们。
2) 创建一个ObservableCollection<Pet>
它确实具有两个源集合的组合元素,但也依赖于源集合。因此,如果将 Cat 添加到 Cat 集合中,则会通知此集合并将新 Cat 添加到自身。
有没有解决这个问题的标准方法?我不想重新发明轮子!
最佳答案
使用 CompositeCollection聚合多个集合和具有完整集合更改支持的项目。
编辑 : CompositeCollection
不是依赖对象,因此没有数据上下文的概念,因此绑定(bind)不起作用。如果添加绑定(bind)项目或集合,则必须从后面的代码创建集合。
关于wpf - 如何在 WPF 中将两个 ObservableCollections 显示为单个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3069837/