将多个ObservableCollections绑定到One ObservableCollection

Rez*_* M. 13 .net c# wpf observablecollection inotifypropertychanged

有一堆,ObservableCollection<MeClass> Result并要求将它们全部组合到另一个,ObservableCollection<MeClass> AllResults所以我可以在一个显示它listview.

只是不确定如何将它们合二为一.

我创建了一个新类,将它们组合在一起但不确定在我获得列表后它们将如何更新...所以不确定要采取哪个方向.

我知道INotifyPropertyChanged我只是不确定如何将它们全部组合并随着一切变化而不断更新.

Adi*_*ter 25

.NET具有CompositeCollection允许您将多个集合视为单个集合的功能.它实现了INotifyCollectionChanged,所以只要你的内部集合也实现INotifyCollectionChanged(在你的情况下它们确实如此),你的绑定应该没有任何问题.

用法示例:

CompositeCollection cc = new CompositeCollection();
CollectionContainer container1 = new CollectionContainer() { Collection = Result1 }
CollectionContainer container2 = new CollectionContainer() { Collection = Result2 }
cc.Add(container1);
cc.Add(container2);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您不能使用`CompositeCollectionView`进行分组.它的`CanGroup`是'false`,它的`ICollectionView.GroupDescriptions`属性是'null`并且是不可设置的. (4认同)