2

我在静态类中有这样的函数

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)

GridsDataSource属性为空。你能解释一下为什么会这样吗?

编辑:列表变量是列表,其中包含 DocType = 10 的元素。项目包含元素。

4

4 回答 4

3

你应该使用

GridControl.DataSource = staticClass.getFilteredList(10).ToList();

创建一个新List实例以绑定到您的网格。

另一种方法是使用 a BindingList,它完全支持数据绑定并为您提供有用的事件,例如ListChangedand AddingNew

var list = new BindingList(staticClass.getFilteredList(10).ToList());

GridControl.DataSource = list;
于 2012-08-10T12:09:11.590 回答
2

尝试

GridControl.DataSource = staticClass.getFilteredList(10).ToList();

因为 DataSource 必须继承自 IList

于 2012-08-10T12:09:03.053 回答
2

你可以试试 ToList()

GridControl.DataSource = staticClass.getFilteredList(10).ToList();
GridControl.DataBind();
于 2012-08-10T12:10:00.823 回答
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 类进行比较。如果不是这种情况,那么您的查询可能只是返回一个空集,因为它找不到任何匹配的内容。

于 2012-08-10T12:07:22.867 回答