2010-12-16 11 views
3

私はListViewを作成しました(xamlで)、私はDisplayMemberBindingでGridViewColumnを使って私のViewModelのプロパティを表示しています。ListView [mvvm]のデータをフィルタリングする

 <ListView x:Name="MyListView" ItemsSource="{Binding DataContent}"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn DisplayMemberBinding="{Binding UserName}"/> 
       <GridViewColumn DisplayMemberBinding="{Binding LastName}"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 

すべて正常です。私はリストビューでDataContentの内容を見ることができます。 今、私は一種のリストビューフィルタを持っています。ユーザーは、DataContentのすべての項目で現在検索されている文字列をテキストボックスに入力できます。 DataContentの項目には、 "IsShown"という名前のブール値プロパティがあります。このプロパティは、入力された文字列がプロパティ "UserName"に見つからない場合はfalseに設定され、そうでない場合はtrueに設定されます。

私は今必要なのは: 一致するUserNameを持たないリストビューのすべての行を非表示にする必要があります。 私はここで何とか各行で利用可能なプロパティIsShown(ビューモデル内)を使用できると思います。 ユーザーがテキストボックスから文字列を削除または変更すると、DataContentのコンテンツが再度検索され、必要に応じてIsShownが変更されます。 リストビューを再度更新する必要があります。 「IsShown」が真である行のみが表示されます。

どうすればいいですか?

答えて

2

あなたはCollectionViewクラス

See Here

だけでなく、特定のフィルタの例

Filter Example

+0

を利用することができます私はこれをチェックしますありがとうございました。私の問題の解決策と思われる。 – Ferhat

関連する問題