带有谓词的listview自定义排序(排序属性是枚举)

本文关键字:排序 属性 枚举 自定义 谓词 listview | 更新日期: 2023-09-27 18:21:24

此代码适用于

 ICollectionView dataView = CollectionViewSource.GetDefaultView(this.ItemsSource);
            if (dataView != null)
            {
                // Specify the new sorting information.
                dataView.SortDescriptions.Clear();
                var description = new SortDescription(propertyName, _sortDirection);
                dataView.SortDescriptions.Add(description);
                dataView.Refresh();               
            }

例如字符串类型的属性ir按字母顺序排序,而enum则以enum数为基排序,问题是我想要enum的自定义比较。

带有谓词的listview自定义排序(排序属性是枚举)

您可以做的是,如果您的源列表实现了IList,您可以将集合视图源强制转换为ListCollectionView,并使用自定义IComparer类设置ListCollectionView.CustomSort,在那里您可以实现自定义排序逻辑

ListCollectionView dataView = (ListCollectionView)(CollectionViewSource.GetDefaultView(this.ItemsSource));
dataView.CustomSort = new MyCustomSort();