Tôi gặp sự cố khi nhận bộ lọc để hoạt động trên BindingSource là DataSource cho điều khiển DataGridView. Về cơ bản, tôi có truy vấn LINQ là DataSource cho BindingSource và tôi muốn lọc kết quả. Dưới đây là một ví dụ về những gì tôi đang cố gắng hoàn thành.Làm cách nào để lọc một BindingSource có truy vấn LINQ là DataSource
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'"
...
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
Vì vậy, tôi có thể xem tất cả các hàng trong việc kiểm soát DataGridView nhưng bộ lọc không có bất kỳ tác dụng. Nếu tôi chuyển DataSource của BindingSource để sử dụng một DataTable, thì việc lọc hoạt động như mong đợi. Tôi đang thiếu gì?