6

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

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

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

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

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

4

1 回答 1

5

Bea Stollnitz 的博客和 GitHub 存储库上的这篇文章演示如何做到这一点。您必须首先按分组标准进行排序。即使这不是一个具体的属性,也应该可以使用与分组相同的逻辑对项目进行排序,不是吗?!当然,这不可能使用 SortDescription 实例,但您可以改为使用该ListCollectionView.CustomSort属性并指定适当的IComparer实现。

于 2010-05-11T09:04:34.943 回答