带有谓词的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的自定义比较。
您可以做的是,如果您的源列表实现了IList
,您可以将集合视图源强制转换为ListCollectionView
,并使用自定义IComparer
类设置ListCollectionView.CustomSort
,在那里您可以实现自定义排序逻辑
ListCollectionView dataView = (ListCollectionView)(CollectionViewSource.GetDefaultView(this.ItemsSource));
dataView.CustomSort = new MyCustomSort();