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プロパティはnullです。なぜこれが起こっているのか説明してもらえますか?

編集:リスト変数は、DocType=10の要素を含むListです。Itemsには要素が含まれています。

4

4 に答える 4

3

あなたは使用する必要があります

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

Listグリッドにバインドする新しいインスタンスを作成します。

もう1つの方法は、を使用することです。これは、データバインディングを完全にサポートし、やBindingListのような便利なイベントを提供します。ListChangedAddingNew

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 に答える