2009-06-03 124 views
6

我有一个WPF列表视图与列中有日期。我想自定义排序日期的方式(按日期值,而不是字符串值)。有没有办法做到这一点?现在我正在使用list.Items.SortDescriptions来使用另一列进行排序,但是我想改变它来排序日期列。按日期排序ListView

谢谢。

回答

7

你试过吗?

ICollectionView view = CollectionViewSource.GetDefaultView(listView.ItemsSource); 
view.SortDescriptions.Add(new SortDescription("Date", ListSortDirection.Descending)); 

编辑:您还可以看看this attached property

+0

是的,我现在看到了。也许我害怕它只是做字符串比较。我做了一个属性,将字符串日期转换为日期对象,并且运行良好。谢谢。 – Max 2009-06-11 18:16:17

1

使用ObservableList和自定义对象类型 - 并自己进行排序。使用ItemsSource将ListView连接到ObservableList。

...,或者你可以尝试做这个博客描述的内容; Sorting ListViews

3

如果你发现WPF是默认排序方式是不是你预期什么,你可以提供一个自定义分类器为默认观点:

ListCollectionView view = 
    (ListCollectionView)CollectionViewSource.GetDefaultView(listView.ItemsSource); 
view.CustomSort = new DateValueSorter(); 
listView.Items.Refresh(); 

哪里DateValueSorter是实现根据日期值IComparer接口和排序,并产生你正在寻找的顺序一类。