首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF过滤CollectionViewSource

WPF过滤CollectionViewSource
EN

Stack Overflow用户
提问于 2013-06-04 11:24:45
回答 1查看 873关注 0票数 0

我有一个WPF项目,它从数据集中提取数据。在一个特定的视图中,我有一个网格,我想显示数据的过滤版本。

我读到我不能过滤BindingListView,但这是一个CollectionViewSource

我的密码是:-

代码语言:javascript
复制
Private Sub UserControl_Loaded_1(sender As Object, e As RoutedEventArgs) Handles MyBase.Loaded

 Dim _ds As CantileverDataSet
 Dim _carcasseTableAdapter As CantileverDataSetTableAdapters.MaterialsTableAdapter
 Dim _carcasseViewSource As CollectionViewSource

 _ds = CType(Me.FindResource("CantileverDataSet"), CantileverDataSet)

 _carcasseTableAdapter = New CantileverDataSetTableAdapters.MaterialsTableAdapter
 _carcasseTableAdapter.Fill(_ds.Materials)
 _carcasseViewSource = CType(Me.FindResource("MaterialsViewSource"), CollectionViewSource)

 AddHandler _carcasseViewSource.Filter, AddressOf CarcasseFilter
End Sub

Private Sub CarcasseFilter(ByVal sender As System.Object, ByVal e As FilterEventArgs)
    'Accept everything for now

    e.Accepted = True
End Sub

我得到的错误是

'System.Windows.Data.BindingListCollectionView‘视图不支持筛选。

  • 如果我做了_carcasseViewSource.GetType,我得到了CollectionViewSource
  • 如果我做了_carcasseViewSource.View.GetType,我得到了BindingListCollectionView

就好像它把我的_carcasseViewSource当作BindingListCollectionView一样对待

这是网格的XAML,以防万一

代码语言:javascript
复制
    <Grid x:Name="CarcasseGrid" DataContext="{StaticResource MaterialsViewSource}" >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Label Content="Material Code:" Grid.Column="0" Grid.Row="0"/>
        <TextBox x:Name="MaterialCodeTextBox" Grid.Column="1" Grid.Row="0" Text="{Binding MaterialCode, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
        <Label Content="Name:" Grid.Column="0" Grid.Row="1"/>
        <TextBox x:Name="NameTextBox" Grid.Column="1" Grid.Row="1" Text="{Binding Name, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
    </Grid>
EN

回答 1

Stack Overflow用户

发布于 2013-06-04 12:14:14

在使用数据集/数据表时,可以使用IBindingListView.Filter

查看筛选器表达式的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16916568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档