因此,WPF不支持CompositeCollections视图的标准排序或过滤行为,因此解决此问题的最佳做法是什么.
有两个或更多不同类型的对象集合.您希望将它们组合成单个可排序和可过滤的集合(必须手动实现排序或过滤).
我考虑过的一种方法是创建一个只有少数核心属性的新对象集合,包括我希望对集合进行排序的属性,以及每种类型的对象实例.
class MyCompositeObject
{
enum ObjectType;
DateTime CreatedDate;
string SomeAttribute;
myObjectType1 Obj1;
myObjectType2 Obj2;
{
class MyCompositeObjects : List<MyCompositeObject> { }
Run Code Online (Sandbox Code Playgroud)
然后遍历我的两个对象集合来构建新的复合集合.显然这是一种蛮力方法,但它会起作用.我将获得新的复合对象集合上的所有默认视图排序和过滤行为,并且我可以在其上放置数据模板以根据实际存储在该复合项目中的类型来正确显示列表项目.
有什么建议以更优雅的方式做到这一点?
当CompositeCollection的当前位置发生变化时,有没有办法得到通知?
我需要通过CollectionView监控CompositeCollection,任何想法都很受欢迎.
wpf observablecollection compositecollection collectionviewsource