Listview排序组(C#,WPF)

时间:2019-01-09 11:33:30

标签: c# wpf listview grouping

我有一个动态填充的列表。在列表中将项目分组。我正在尝试对组(而不是组中的项目)进行排序,因为某种程度上它们完全混在一起了。

我能够对组中的项目进行排序,但是找不到编程对组进行排序的方法。有谁能给我一个提示,怎么做或者为什么他们一开始没有分类?

初始化代码:

_lvUsers.ItemsSource = _config.listTestBenches;
CollectionView view = CollectionView)CollectionViewSource.GetDefaultView(_lvUsers.ItemsSource);
PropertyGroupDescription groupDescription = new PropertyGroupDescription("type");
view.GroupDescriptions.Add(groupDescription);

更新GUI:

ICollectionView view = CollectionViewSource.GetDefaultView(_config.listTestBenches);
view.Refresh();

2 个答案:

答案 0 :(得分:0)

这应该有帮助:

<CollectionViewSource Source="{Binding list}" x:Key="cvs">
    <CollectionViewSource.SortDescriptions>
        <!--This will sort groups-->
        <scm:SortDescription PropertyName="type" />
        <!--This will sort items-->
        <scm:SortDescription PropertyName="sortItemName"/>
    </CollectionViewSource.SortDescriptions>
    <CollectionViewSource.GroupDescriptions>
        <dat:PropertyGroupDescription PropertyName="type" />
    </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

答案 1 :(得分:0)

只需将SortDescription插入相同的CollectionView

_lvUsers.ItemsSource = _config.listTestBenches;
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(_lvUsers.ItemsSource);
PropertyGroupDescription groupDescription = new PropertyGroupDescription("type");
view.GroupDescriptions.Add(groupDescription);
view.SortDescriptions.Add(new SortDescription("type", ListSortDirection.Ascending));