我有一个WPF ListView,其中包含一个包含日期的列。我想要一种自定义日期排序的方法(按日期值,而不是字符串值)。有没有办法做到这一点?现在我正在使用list.Items.SortDescriptions来使用另一列进行排序,但我想将其更改为对日期列进行排序。
感谢。
答案 0 :(得分:7)
你试过吗?
ICollectionView view = CollectionViewSource.GetDefaultView(listView.ItemsSource);
view.SortDescriptions.Add(new SortDescription("Date", ListSortDirection.Descending));
编辑:您还可以查看this attached property
答案 1 :(得分:3)
如果您发现默认情况下WPF的排序方式与您的意图不符,您可以为默认视图提供自定义排序器:
ListCollectionView view =
(ListCollectionView)CollectionViewSource.GetDefaultView(listView.ItemsSource);
view.CustomSort = new DateValueSorter();
listView.Items.Refresh();
其中DateValueSorter是一个实现IComparer接口的类,它根据日期值进行排序并生成您要查找的顺序。
答案 2 :(得分:1)
使用ObservableList和自定义对象类型 - 并自行进行排序。使用ItemsSource将ListView连接到ObservableList。
...,或者你可以尝试做这个博客描述的内容; Sorting ListViews