2014-02-17 16 views
0

我知道一個過濾器在一個集合查看源代碼,但是當我在一個集合source.Last過濾只有正確地使用多重過濾works.Please幫我在一個集合做多個過濾器查看源代碼。在一個集合查看源代碼,可以多重過濾WPF

的XAML

<Grid> 
     <DockPanel> 
      <DockPanel DockPanel.Dock="Top" Height="90"> 
       <TextBlock VerticalAlignment="Center" Margin="0,9" DockPanel.Dock="Left" >Threshold</TextBlock> 
       <Slider x:Name="Confidencethreshold" Value="14" Margin="0,5" DockPanel.Dock="Left" Width="200" 
         Minimum="0" Maximum="50" 
         ValueChanged="Confidencethreshold_ValueChanged_1" 
         TickPlacement="BottomRight"  TickFrequency="5" IsSnapToTickEnabled="False" SmallChange="1"></Slider> 
        <StackPanel Orientation="Horizontal" > 
         <RadioButton x:Name="radioFound" IsChecked="True" Content="Matches" Checked="radioFound_Checked_1" Margin="6" /> 
         <RadioButton x:Name="radioALL" Content="ALL" Checked="radioFound_Checked_1" Margin="6"/> 

       </StackPanel> 
       </DockPanel> 
      <DataGrid Name="DG2" ItemsSource="{Binding}" AutoGenerateColumns="False" CanUserSortColumns="True"> 
      <DataGrid.Columns> 

        <!--<mui:DataGridCheckBoxColumn Header="Silence Reduction" Binding="{Binding P1}"/>--> 
        <mui:DataGridTextColumn Header="Segment" Binding="{Binding sname}" IsReadOnly="True" /> 
        <!--<mui:DataGridCheckBoxColumn Header="Trimming" Binding="{Binding trim}" /> 
       <mui:DataGridCheckBoxColumn Header="Format Conversion" Binding="{Binding alaw}"/> 
       <mui:DataGridCheckBoxColumn Header="Recognition" Binding="{Binding recog}" />--> 
        <!--<mui:DataGridComboBoxColumn Header="Status" SelectedItemBinding="{Binding Status}" ItemsSource="{Binding Source={StaticResource myEnum}}" />--> 
        <mui:DataGridTextColumn Header="Key" Binding="{Binding key}" IsReadOnly="True" /> 
        <!--<mui:DataGridTextColumn Header="Confidence" Binding="{Binding conf}" IsReadOnly="True" SortDirection="Ascending" SortMemberPath="{Binding conf}" />--> 
        <mui:DataGridTextColumn Header="Confidence" Binding="{Binding conf}" IsReadOnly="True" /> 

       </DataGrid.Columns> 

      </DataGrid> 

     </DockPanel> 
    </Grid> 


And in c# 



      MainWindow w1 = (MainWindow)Window.GetWindow(this); 
      cvs = new CollectionViewSource(); 
      cvs.Source = w1.allresults; 
      cvs.Filter += cvs_Filter; 
      DG2.DataContext = cvs; 




    void cvs_Filter(object sender, FilterEventArgs e) 
    { 
     KeysFound t = e.Item as KeysFound; 
     if (t != null) 
     // If filter is turned on, filter completed items. 
     { 
      if (t.conf < Confidencethreshold.Value) 
       e.Accepted = false; 
      else 
      { 
       e.Accepted = true; 

      } 


     } 
    } 
+0

通過對CVS篩選我猜你的意思過濾器在其的ICollectionView。不過,爲什麼你需要多個過濾器?有一個過濾器,並指定所有條件。你可以發佈代碼嗎? –

回答

-2

可以使用ICollectionView而不是CollectionViewSource的DataGrid來源。點擊以下鏈接可以幫助..

http://social.msdn.microsoft.com/Forums/vstudio/en-US/82cfac7c-d1f6-421c-8891-1149a90c0dd9/wpf-datagrid-one-itemssource-multiple-views-multiple-filters?forum=wpf

+0

鏈接只有答案不可接受堆棧溢出。你可以閱讀更多關於它[這裏](http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers)。這些應該是評論。 –

+0

如果從鏈接張貼相關的代碼,以避免[LinkRot(http://en.wikipedia.org/wiki/Linkrot)問題這將是很好。在旁註中,我試圖幫助你更好地回答這個問題。系列降低我的答案是不會幫助的。 –

+0

上面的例子沒有示出應用一個以上的過濾器,以相同的CVS。 –

相關問題