2013年03月05日

WPFサンプル:既定のビューでListViewの並び替えを実現する

   このエントリーをはてなブックマークに追加 Clip to Evernote
CollectionViewの話題もこれが最後です。
これまでは、CollectionViewSourceを使ってListViewの並び替えを実現しましたが、
今度は、CollectionViewSourceを使わないで実現する方法について説明します。
(説明の順番が逆だろうという突込みが入りそうですが。。。)

直接、BookListオブジェクトをDataContextに設定した場合であってもWPFはBookListに対する既定のビューが
利用されています。
このViewを取得するには、


のようなC#のコードで取得することができます。
これを使えば、前回示したような<Window.Resources>に、CollectionViewSource を記述する必要はなくなります。
前回のコードをこのDefaultViewを使うように修正してみました。
まずは、スクリーンショットを示します。
CollectionView41

次にXAMLです。


C#のコードビハインド側は MainWindow のコンストラクタのコードを少し変更しただけです。


他の部分は、前回のコードと同じなので割愛します。
初期の表示順が既定のままという点が、前回までと異なる点ですが、そこは大目にみてください。
コンストラクタにさらにコードを追加すれば、初期の表示順も変更できます。

なお、この既定のビューは、そのコレクションオブジェクトへのすべてのバインディングで共有されます。
つまり、一つのコレクションオブジェクトには、一つの規定ビューです。
そのため、一つのコレクションオブジェクトに対して、複数のコントロールを割り当てて表示したい場合
(ソート順やフィルター条件は分けたい場合)は、この既定のビューだけでは要件を満たせません。
そういった場合に前回まで利用していたCollectionViewSource クラスを使用することになります。



 

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

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