【问题标题】:Listview sort groups (C#, WPF)Listview 排序组(C#、WPF)
【发布时间】:2019-01-09 11:33:29
【问题描述】:

我有一个动态填充的列表。在列表中,项目被分组。我正在尝试对组(而不是组内的项目)进行排序,因为不知何故完全混淆了。

我能够对组内的项目进行排序,但没有找到对组进行排序的编程方法。有没有人可以给我一个提示如何做到这一点,或者为什么他们首先没有排序?

初始化代码:

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

更新界面:

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

【问题讨论】:

标签: c# wpf listview grouping


【解决方案1】:

这应该会有所帮助:

<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>

【讨论】:

    【解决方案2】:

    只需将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));
    

    【讨论】:

    • @user3077796:你试过了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2014-02-04
    • 2010-11-13
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多