我正在尝试使用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中选择的学校
谢谢
答案 0 :(得分:1)
您可以使用Where()
:
private void cmbFilter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
this.dataList.ItemsSource = MainWindow._RE.ListDatas.Where(i => i.SchoolName == (string)cmbFilter.SelectedItem);
}