使用CollectionViewSource的组的自定义排序逻辑

时间:2010-05-11 08:02:31

标签: wpf grouping collectionviewsource

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

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

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

我看到的关于CollectionViewSource.SortDescriptions的所有内容都表示它会按属性名称对组进行排序,但我没有可用于排序的属性。 SortDescriptions不能绑定到像GroupDescriptions这样的值转换器,而且我没有其他想法。

那么 - 如何实现CollectionViewSource组的自定义排序逻辑?

1 个答案:

答案 0 :(得分:6)

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