如何在WPF中订购组

时间:2011-01-20 12:30:43

标签: wpf data-binding

在WPF中,CollectionViewSource允许排序(SortDescriptions)和分组(GroupDescriptions)。但是,我找不到订购这些团体的方法。有可能吗?

2 个答案:

答案 0 :(得分:21)

<CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource animals}, Path=AnimalList}">
    <CollectionViewSource.GroupDescriptions>
        <PropertyGroupDescription PropertyName="Category"/>
    </CollectionViewSource.GroupDescriptions>
    <CollectionViewSource.SortDescriptions>
        <scm:SortDescription PropertyName="Category" />
        <scm:SortDescription PropertyName="Name" />
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>

只需添加两个SortDescriptions.Adding两个排序说明允许我们先对组进行排序,然后对组内的项目进行排序。

有关详情,请点击此处

http://bea.stollnitz.com/blog/?p=17

答案 1 :(得分:4)

虽然不是那么简单,但可以进行组排序。我将在这个例子中解释它。

class CollectionElement
{
     public string Name {get; set; }
     public string Group {get; set; }
}

如果您希望对元素进行分组并按字母顺序对组进行排序,然后按字母顺序对每个组中的元素进行排序,那么您应该执行以下操作:

  1. 添加PropertyGroupDescription引用Group属性
  2. 添加SortDescription引用Group
  3. 添加引用Name
  4. 的SortDescription

    分组过程似乎可以通过以下方式有效地工作:因此,迭代已排序的元素。遇到未知组的元素时 - 创建一个组并将其添加到组列表中。遇到现有组中的元素时 - 将其添加到现有组。 (实际实施可能会有所不同)。因此,如果您的元素按照您希望组出现的顺序排序,您将有效地对组进行排序。