过滤器绑定源如何连接到linq查询

时间:2014-03-27 07:30:43

标签: linq filter bindingsource

我有一个sql表"活动"其中包括.ID,.Activ_Code,.Name,.Start,.End

Dim BS as BindingSource
Dim DGView as Datagridview


BS.Datasource=(From x in Dbase.Activity select x)
BS.Filter="Activ_Code=3"
DGView.datasource=BS

这显示来自"活动"的所有字段。表。 我将Filter属性更改为" Activ_Code =' 3'"和" Activ_Code LIKE 3"但它们都不起作用。

1 个答案:

答案 0 :(得分:0)

来自MSDN

  

只有实现IBindingListView接口的底层列表才支持过滤。

数据源只是IEnumerable。您必须在LINQ查询本身中进行过滤。例如:

Dim mainList = (From x in Dbase.Activity select x).ToList
BS.Datasource=(From x in mainList.Where(...) select x)

并将过滤器放在点上。每次将数据源设置为新的筛选列表时, in 列表中的对象都不会受到影响,因为它们不会从数据库中重新获取。