如何使用CollectionViewSource对listview中的组进行排序?

问题描述 投票:1回答:2
<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组的最近日期是06-24-2015。 B组的最近日期是06-17-2015。

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

如何实现这一目标?

wpf xaml sorting collectionviewsource
2个回答
1
投票

.Net 4.6.2增加了GroupDescription.SortDescriptions,它的工作方式与CollectionViewSource.SortDescriptions相同,而GroupDescription.CustomSort则允许您提供IComparer对象。


0
投票

这应该工作:

<CollectionViewSource x:Key="messages" Source="{Binding src}"> 
    <CollectionViewSource.GroupDescriptions> 
        <PropertyGroupDescription PropertyName="Group"/> 
    </CollectionViewSource.GroupDescriptions> 
    <CollectionViewSource.SortDescriptions>
        <SortDescription PropertyName="Date" Direction="Descending" />
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>
© www.soinside.com 2019 - 2024. All rights reserved.