WPF

C#WPFの道#11!ListViewのフィルタリングの方法を解説!

ListViewのフィルタリングとは?

ListViewにすべての行が表示されていると不都合が生じることがあります。例えば、一覧にリストされている項目が多い場合は、特定の行を探すのに手間がかかってしまいます。その場合、任意の文字などでフィルタリングをすることで、必要な情報だけが表示され、非常に使いやすくなります。

サンプルコード

次の例では、Customerクラスの一覧を表示しているListViewに検索用テキストボックスを設置し、その検索用テキストボックスに入力された文字をCustomerのNameに含んでいる行のみが表示されるようにフィルタリングをしています。フィルタリングはLinq機能のWhereを使用しています。

SearchTextBoxを追加して、ClickイベントSearchTextBox_TextChangedを生成しています。

コンストラクタで、_customersインスタンスに15件のCustomerクラスのインスタンスを追加しています。SearchTextBox_TextChangedではLinq機能を使用してSearchTextBoxのTextプロパティの文字列を含んでいる行のみを取得し、ListViewのItemsSourceに設定しています。

<フィルタリングなし> <文字列「2」でフィルタリングした状態>

 

WPFの道!

C#プログラマーのための正しい3層構造が分かる「C#アーキテクチャー解説動画」をここで公開しています。よかったら見てみてください。

 

参考図書

C#のWPFでPrismを使ってMVVMで実装する方法