![](/img/trans.png)
[英]C# Using LINQ Query compare the records with result of process array
[英]Using LINQ query result for data source for GridControl c#
我在靜態類中有這樣的功能
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)
Grids DataSource
屬性為null。 您能解釋一下為什么會這樣嗎?
編輯:列表變量是List,其中包含DocType = 10的元素。Items包含元素。
你應該用
GridControl.DataSource = staticClass.getFilteredList(10).ToList();
創建一個新的List
實例以綁定到您的網格。
另一種方法是使用BindingList
,它完全支持數據綁定並為您提供有用的事件,如ListChanged
和AddingNew
。
var list = new BindingList(staticClass.getFilteredList(10).ToList());
GridControl.DataSource = list;
嘗試
GridControl.DataSource = staticClass.getFilteredList(10).ToList();
因為必須從IList繼承DataSource
您可以嘗試使用ToList()
GridControl.DataSource = staticClass.getFilteredList(10).ToList();
GridControl.DataBind();
public static IEnumerable<MyObject> getFilteredList(int docType)
{
var fItems = from i in list
where i.DocType.docTypeId == docType
select i;
return fItems;
}
如果我錯了,請糾正我,但是現在看來,您好像正在將一個int與DocType類進行比較。 如果不是這種情況,那么您的查詢可能只是返回一個空集,因為它找不到匹配的任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.