因此,WPF不支持CompositeCollections视图的标准排序或过滤行为,那么解决此问题的最佳做法是什么?排序复合集合
有两个或更多不同类型的对象集合。您想将它们组合成一个可排序和可过滤的集合(必须手动实现排序或过滤)。
我考虑过的一种方法是创建一个只有少数核心属性的新对象集合,包括我希望集合排序的属性和每个类型的对象实例。
class MyCompositeObject
{
enum ObjectType;
DateTime CreatedDate;
string SomeAttribute;
myObjectType1 Obj1;
myObjectType2 Obj2;
{
class MyCompositeObjects : List<MyCompositeObject> { }
然后通过我的两个对象集合循环来构建新的复合集合。显然这是一种强力方法,但它会起作用。我会在新的复合对象集合上获得所有默认视图的排序和过滤行为,并且我可以在其上放置一个数据模板以正确显示我的列表项,具体取决于哪个类型实际存储在该复合项目中。
有什么建议可以用更优雅的方式做到这一点?
lubos:谢谢你 - 我也算是LINQ到对象,但我关心的有用于类型化数据模板,这是我需要在我的列表中显示的对象失去弹性。 – 2010-01-19 04:05:11