在BindingSource上使用LINQ进行查询

时间:2017-11-27 11:05:07

标签: c# linq data-binding

我想使用Linq查询绑定源。

T

此代码在运行时出现以下错误:无法将类型为“System.Data.DataView”的对象强制转换为“System.Collections.Generic.IList”

那么,是否可以使用Linq查询绑定源?我想在代码中的其他地方使用绑定源对象。

3 个答案:

答案 0 :(得分:1)

首先,你必须从像

这样的列表中获取bindingSource.DataSource的所有记录
var list = myBindingSource.List.OfType<yourmodel/class>();

比您可以在此列表中使用查询

var records = list.where(u => u.id == yourid).ToList();

答案 1 :(得分:0)

您可以编写转换器并在转换器中添加LINQ逻辑。

答案 2 :(得分:0)

您需要使用Cast扩展程序转换为IList的通用版本:

((IList)myTableBindingSource.List).Cast<myObjectBinding>().Where(some linq query);

DataView继承自System.Collections.IList,但您尝试转换为System.Collections.Generic.IList