2012-01-07 5 views
0

나는이 WPF에서리스트 박스는 그때 내가 만들기 필터는

private void ShopItemDay_Filter(object sender, FilterEventArgs e) 
    { 
     var item = e.Item as ShopItem; 

     e.Accepted = item.Day == 1; 
    } 

이라고 원하는 필터 방법을하지만 어떤 속성을 찾을 수 없습니다 ObservableCollection에

     <ListBox Margin="0,0,-12,0" ItemsSource="{Binding ShopList}" 
          ScrollViewer.VerticalScrollBarVisibility="Auto" 
          Grid.Row="1" 
          Grid.ColumnSpan="2" KeyDown="ListBox_KeyDown" KeyUp="ListBox_KeyUp" 
          > 
         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal" Margin="0,0,0,17" > 
            <!--Replace rectangle with image--> 
            <Rectangle Height="50" Width="50" Stroke="Black" StrokeThickness="6" Margin="12,0,9,0"/> 

            <StackPanel Width="Auto"> 
             <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
             <TextBlock Text="{Binding Quantity}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
            </StackPanel> 
           </StackPanel> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 
        </ListBox> 

에 databinded 목록 상자에서 여기와 같은 필터 메서드를 사용하십시오. http://www.galasoft.ch/mydotnet/articles/article-2007081301.aspx

답변

1

링크 된 기사에서 알 수 있듯이 필터는 컨트롤의 속성이 아닙니다. 콜렉션 주위의 일종의 래퍼 인 CollectionViewSource의 프로퍼티입니다. 이 래퍼는 정렬, 그룹화 및 필터링을 허용합니다.

3

컬렉션에 '보기'를 만들어야합니다. CollectionView.Filter에 대한 설명서를 참조하십시오. 프레임 워크는 모든 바운드 컬렉션에 대한 기본보기를 만듭니다. 다음과 같이 필터를 추가 할 수 있습니다.)