2009-06-03 123 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接口和排序,併產生你正在尋找的順序一類。