我在静态类
中有这样的函数public static IEnumerable<MyObject> getFilteredList(int docType)
{
var fItems = from i in list
where i.DocType == docType
select i;
return fItems;
}
当我以这样的形式将数据源的返回列表用于我的网格时,例如:
GridControl.DataSource = staticClass.getFilteredList(10)
网格DataSource
属性为null。你能解释一下为什么会这样吗?
编辑:列表变量是List,其中包含DocType = 10的元素。 Items包含元素。
答案 0 :(得分:2)
你应该使用
GridControl.DataSource = staticClass.getFilteredList(10).ToList();
创建一个新的List
实例以绑定到您的网格。
另一种方法是使用BindingList
,它完全支持数据绑定,并为您提供有用的事件,如ListChanged
和AddingNew
。
var list = new BindingList(staticClass.getFilteredList(10).ToList());
GridControl.DataSource = list;
答案 1 :(得分:1)
尝试
GridControl.DataSource = staticClass.getFilteredList(10).ToList();
因为DataSource必须从IList继承
答案 2 :(得分:1)
您可以尝试使用ToList()
GridControl.DataSource = staticClass.getFilteredList(10).ToList();
GridControl.DataBind();
答案 3 :(得分:0)
public static IEnumerable<MyObject> getFilteredList(int docType)
{
var fItems = from i in list
where i.DocType.docTypeId == docType
select i;
return fItems;
}
如果我错了,请纠正我,但现在好像你正在将int与DocType类进行比较。如果不是这样,那么你的查询可能只是返回一个空集,因为它找不到匹配的东西。