.net 如何筛选以LINQ查询作为数据源的BindingSource

.net 如何筛选以LINQ查询作为数据源的BindingSource,.net,data-binding,filter,.net,Data Binding,Filter,我很难在BindingSource(DataGridView控件的数据源)上使用过滤器。基本上,我有一个LINQ查询,它是BindingSource的数据源,我想过滤结果。下面是我试图完成的一个例子 Dim query = From row In dataTable _ Select New MyRow(row) Dim bs As New BindingSource() bs.DataSource = query.ToList() grid.DataSource =

我很难在BindingSource(DataGridView控件的数据源)上使用过滤器。基本上,我有一个LINQ查询,它是BindingSource的数据源,我想过滤结果。下面是我试图完成的一个例子

Dim query = From row In dataTable _
            Select New MyRow(row)

Dim bs As New BindingSource()
bs.DataSource = query.ToList()

grid.DataSource = bs

bs.Filter = "Col1 = 'value'"


因此,我可以看到DataGridView控件中的所有行,但过滤器没有任何效果。如果我将BindingSource的数据源切换为使用DataTable,那么过滤将按预期工作。我缺少什么?

来自BindingSource文档:

通常用于复杂数据绑定 场景中,筛选器属性允许 您需要查看 数据源。只有底层列表 实现IBindingListView 接口支持过滤

Public Class MyRow
    Private _key As String
    Private _col1 As String

    Public Sub New(ByVal row As DataTableRow)
        _key = GetNewKeyValue()
        _col1 = row.Col1
    End Sub

    Public ReadOnly Property Key() As String
        Get
            Return _key
        End Get
    End Property

    Public ReadOnly Property Col1() As String
        Get
            Return _col1
        End Get
    End Property
End Class