使用ComboBox过滤DataGrid

时间:2017-06-06 12:42:56

标签: c# wpf

我正在尝试使用ComboBox在DataGrid中过滤我的数据。

我在xaml中有这个:

    <ComboBox x:Name="cmbFilter" SelectionChanged="cmbFilter_SelectionChanged" />
       <Grid>
             <DataGrid x:Name="dataList">
                   <DataGrid.Columns >
                       <DataGridTextColumn Header="School" Binding="{Binding SchoolName}"></DataGridTextColumn>
                       <DataGridTextColumn Header="Category" Binding="{Binding CategorySchool}"></DataGridTextColumn>
                   </DataGrid.Columns>
             </DataGrid>
       </Grid>

在后面的代码中:

//fill the list with the datas
this.dataList.ItemsSource = MainWindow._RE.ListDatas;

//fill the combobox with the school names
this.cmbFilter.ItemsSource = MainWindow._RE.ListNameSchool;

private void cmbFilter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    // ??????
}

我设法在DataGrid中填充所有数据和ComboBox以及所有学校名称。 我想要的是能够过滤Datagrid,具体取决于从ComboBox中选择哪个学校名称和“School”列。显示的数据仅来自ComboBox中选择的学校

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Where()

private void cmbFilter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    this.dataList.ItemsSource = MainWindow._RE.ListDatas.Where(i => i.SchoolName == (string)cmbFilter.SelectedItem);
}