【问题标题】:How to sort Groups in listview using CollectionViewSource?如何使用 CollectionViewSource 对列表视图中的组进行排序?
【发布时间】:2015-07-30 07:03:01
【问题描述】:
<CollectionViewSource x:Key="messages" Source="{Binding src}"> 
    <CollectionViewSource.GroupDescriptions> 
        <PropertyGroupDescription PropertyName="Group"/> 
    </CollectionViewSource.GroupDescriptions> 
    <CollectionViewSource.SortDescriptions>
        <SortDescription PropertyName="Group" />
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource> 

上面的代码按字母顺序工作。但我想按来自 groupitems 的日期对组进行排序。

例如,我有 3 个组。

Group A
- Invoice("cd", 06-24-2015)
- Invoice("car", 06-01-2015)

Group B
- Invoice("cd", 04-21-2015)
- Invoice("car", 06-17-2015)

Group C
- Invoice("cd", 07-02-2015)
- Invoice("car", 06-08-2015)

我希望...的结果是这样的。

Group C
- Invoice("cd", 07-02-2015)
- Invoice("car", 06-08-2015)

Group A
- Invoice("cd", 06-24-2015)
- Invoice("car", 06-01-2015)

Group B
- Invoice("cd", 04-21-2015)
- Invoice("car", 06-17-2015)

组顺序为 C 组 -> A 组 -> B 组。 因为每个组项的最近日期是结果的比较目标。

C 组的最近日期是 07-02-2015。 A 组的最近日期是 2015 年 6 月 24 日。 B 组的最近日期是 2015 年 6 月 17 日。

所以结果是 C -> A -> B。

如何实现这个目标?

【问题讨论】:

    标签: wpf xaml sorting collectionviewsource


    【解决方案1】:

    .Net 4.6.2 添加了GroupDescription.SortDescriptions,其工作方式与CollectionViewSource.SortDescriptionsGroupDescription.CustomSort 相同,它允许您提供IComparer 对象。

    【讨论】:

      【解决方案2】:

      这应该可行:

      <CollectionViewSource x:Key="messages" Source="{Binding src}"> 
          <CollectionViewSource.GroupDescriptions> 
              <PropertyGroupDescription PropertyName="Group"/> 
          </CollectionViewSource.GroupDescriptions> 
          <CollectionViewSource.SortDescriptions>
              <SortDescription PropertyName="Date" Direction="Descending" />
          </CollectionViewSource.SortDescriptions>
      </CollectionViewSource>
      

      【讨论】:

      • 感谢您的回复。您的解决方案似乎只是用于组排序......我想根据组中项目的日期属性进行组排序。但我还没有找到解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 2014-06-22
      相关资源
      最近更新 更多