2010-05-11 66 views
4

我有一个“东西”需要过滤,然后以分组和排序的方式显示的列表。计算分组和排序顺序所需的数据不可用作简单属性 - 需要在代码中完成一些工作才能计算顺序和组。自定义排序逻辑组使用CollectionViewSource

CollectionViewSource让我定义自定义过滤器和排序逻辑 - 到目前为止这么好。它还允许我将GroupDescriptions绑定到值转换器,以便可以生成组名。

我想要做的最后一件事是控制生成的组出现的顺序,这使我很痛苦!

我看到的所有关于CollectionViewSource.SortDescriptions的表示将按属性名称排序组,但我没有可供排序的属性。 SortDescriptions不能像GroupDescriptions那样绑定到一个值转换器,我不能和其他想法绑定。

所以 - 你如何实现CollectionViewSource组的自定义排序逻辑?

回答

6

This post on Bea Stollnitz' blog演示如何做到这一点。您必须先按照您的分组标准进行排序。即使这不是一个具体的属性,也应该可以使用与用它们相同的逻辑对项目进行排序,不是吗?!当然,使用SortDescription实例是不可能的,但您可以改用ListCollectionView.CustomSort属性并指定适当的IComparer实现。

+0

这似乎不适用于我,当我尝试它,但我会回去再看看,因为我从那以后尝试了一堆其他的东西,这很有可能我错过了一些东西...... – MarcE 2010-05-11 09:18:58

+0

嗯,它适用于我。也许你可以发布一些代码,然后我们可以尝试找到你的问题。 – gehho 2010-05-11 09:27:11

+0

好吧,我有一个“看不见树木的时刻”的时刻。谢谢 - 在清除了所有我想要的东西之后。 – MarcE 2010-05-12 07:39:41