按日期排序ListView

时间:2009-06-03 18:50:24

标签: c# wpf xaml listview

我有一个WPF ListView,其中包含一个包含日期的列。我想要一种自定义日期排序的方法(按日期值,而不是字符串值)。有没有办法做到这一点?现在我正在使用list.Items.SortDescriptions来使用另一列进行排序,但我想将其更改为对日期列进行排序。

感谢。

3 个答案:

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