Je n'arrive pas à obtenir un filtre pour fonctionner sur un BindingSource qui est le DataSource pour un contrôle DataGridView. Fondamentalement, j'ai une requête LINQ qui est la source de données pour le BindingSource et je voudrais filtrer les résultats. Voici un exemple de ce que j'essaie d'accomplir.Comment filtrer un BindingSource avec une requête LINQ en tant que 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
Alors, je peux voir toutes les lignes dans le contrôle DataGridView mais le filtre n'a pas d'effet. Si je permets à DataSource de BindingSource d'utiliser un DataTable, le filtrage fonctionne comme prévu. Qu'est-ce que je rate?