2009-06-03 9 views
6

日付が入っている列を持つWPF ListViewがあります。私は日付をカスタムソートする方法を望んでいます(文字列の値ではなく日付の値によって)。これを行う方法はありますか?今は別の列を使用して並べ替えるためにlist.Items.SortDescriptionsを使用していますが、これを代わりに日付列でソートするようにしたいと思います。日付順リストビュー

ありがとうございました。

答えて

7

これを試しましたか?

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

EDIT:あなたはWPFは、デフォルトでソートされている方法は、あなたが意図したものではありません、あなたがデフォルトにカスタムソーターを提供することができることを発見している場合は、またthis attached property

+0

はい、私は今それを参照してください。たぶん私はそれが文字列の比較をするだけだろうと恐れていた。私は文字列の日付を日付オブジェクトに変換したプロパティを作成し、うまくいきました。ありがとう。 – Max

+0

XAMLを使用してそのことができるかどうか知っていますか? – SRKX

+1

確かに、[MSDNの例](http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx) –

1

ObservableListとカスタムオブジェクトタイプを使用して、自分でソートします。 ItemsSourceを使用して、ObservableListにListViewを接続します。

...、またはこのブログで説明していることを試すことができます。 Sorting ListViews

3

を見てすることができますビュー:DateValueSorterは、日付の値に応じたIComparerインターフェイスと種類を実装し、あなたが探している順序付けを生成するクラスです

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

関連する問題