2013年03月03日

WPFサンプル:CollectionViewSourceを使ったListViewの並び替え(▼▲を表示する)

   このエントリーをはてなブックマークに追加 Clip to Evernote
前回の「CollectionViewSourceを使ったListViewの並び替えとフィルター処理」での予告?の通り、
カラムヘッダーに▲と▼マークを表示してみたいと思います。

Window.Resourcesに以下のDataTemplateを2つ追加します。
このテンプレートは、ListViewのヘッダーカラムの表示を変更するものです。
TextBlockと▲と▼マークを描画するPathをを持ったDockPanelです。


これをGridViewColumnHeaderのColumn.HeaderTemplateに適用すれば、三角マークが表示されるわけですが、
この例では、初期状態は表示させないようにしていますので、XAMLには、DataTempletの定義をしておくだけで、
DataTemplateの適用は、C#のコード側で行います。

では、前回のC#のコードにDataTempletを適用するコードをGridViewColumnHeaderClickedHandlerメソッドに追加します。
追加するコードは、


です。最後の3行は、ヘッダーがクリックされる前に表示されていた三角マークを消去するためのものです。
これがないと、永遠に三角マークが表示され続けるので、ユーザはどれがソートキーなのかがわからなく
なってしまいます。

最後に、すべてのXAMLコードと、コードビハインドのコード(C#)を示します。
Book, BooksDataは、CollectionViewSourceを使い、ListViewを表示するをみてください。




 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52306883