0

私は作成した WPF コントロールを使用しており、プロパティの値によってリストの特定の行のみを表示しようとしています。例は次のとおりです。Active のプロパティを保持する User クラスがあります。リストにアクティブな人のみを表示するように .xaml に指示するにはどうすればよいですか?

現在、基本的にlinqを使用して新しいリストを生成し、必要に応じてリストビューに渡しています。ただし、リスト全体を ListView に渡し、それで作業を完了させたいと思います。

これが私のListViewコードです。

<ListView ItemsSource="{Binding}" DataContext="{Binding }" >
     <ListView.View>
          <GridView>
               <GridViewColumn>
                    <GridViewColumn.CellTemplate>
                         <DataTemplate>
                              <StackPanel>
                                   <TextBlock Text="{Binding Index}"/>
                                   <TextBlock Text=". " />
                                   <TextBlock Text="{Binding FirstName}" />
                                   <TextBlock Text="{Binding LastName}" />
                              </StackPanel>
                         </DataTemplate>
                    </GridViewColumn.CellTemplate>
               </GridViewColumn>
          </GridView>
     </ListView.View>
</ListView>
4

1 に答える 1

1

フィルタを追加するには、背後にいくつかのコードが必要です。

参照:WPFフィルタリング

ICollectionView view = CollectionViewSource.GetDefaultView(lstMovies.ItemsSource);  
view.Filter = null;  
view.Filter = new Predicate<object>(FilterMovieItem);  


private bool FilterMovieItem(object obj)  
{  
    MovieItem item = obj as MovieItem;  
    if (item == null) return false;  

    string textFilter = txtFilter.Text;  

    if (textFilter.Trim().Length == 0) return true; // the filter is empty - pass all items  

    // apply the filter  
    if (item.MovieName.ToLower().Contains(textFilter.ToLower())) return true;  
    return false;  
}  
于 2012-12-10T14:41:17.290 に答える