没有默认的数据网格视图

本文关键字:数据网 网格 视图 数据 默认 | 更新日期: 2023-09-27 18:13:35

我想过滤加载在数据网格中的数据。这个数据网格被限定为EF的实体。我在网上阅读了不同的关于过滤的文章,从这些文章中我可以创建下面的代码。问题是我仍然得不到我想要的。抛出异常,因为"MyData"为NULL。为什么defaultview不返回数据?

这是XAML

<Grid Name="gG" DataContext="{StaticResource t_KlantenViewSource}">
    <DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" Name="t_KlantenDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" IsReadOnly="True" CanUserReorderColumns="False" CanUserDeleteRows="False" CanUserAddRows="False" CanUserResizeRows="False" MouseDoubleClick="t_KlantenDataGrid_MouseDoubleClick" Margin="0,21,0,10" FontSize="13">
    </DataGrid>
    <TextBox Height="23" HorizontalAlignment="Right" Name="tbSearch" VerticalAlignment="Top" Width="120" Margin="0,-7,99.2,0" TextChanged="tbSearch_TextChanged" />
</Grid>

代码

CollectionViewSource t_KlantenViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("t_KlantenViewSource")));
        System.Data.Objects.ObjectQuery<AOV.t_Klanten> customersQuery = this.Getlt_KlantenQuery(aovent);
        t_KlantenViewSource.Source = customersQuery.Execute(System.Data.Objects.MergeOption.AppendOnly);
private System.ComponentModel.ICollectionView MyData;
string SearchText = string.Empty;
    private void tbSearch_TextChanged(object sender, TextChangedEventArgs e)
    {
        MyData = CollectionViewSource.GetDefaultView(t_KlantenDataGrid.DataContext);
        TextBox t = sender as TextBox;
        SearchText = t.Text.ToString();
        MyData.Filter = FilterData;
    }

没有默认的数据网格视图

您需要更改下面更新的代码中提到的第一行。当GetDefaultView接受绑定源时。

 private void tbSearch_TextChanged(object sender, TextChangedEventArgs e)
        {
            MyData = CollectionViewSource.GetDefaultView(t_KlantenDataGrid.ItemsSource);
            TextBox t = sender as TextBox;
            SearchText = t.Text.ToString();
            MyData.Filter = FilterData;
        }