[英]Error with data grid view
我在使用datagrid視圖時遇到問題。 我已經在圖片中附加了代碼和錯誤消息。 我想知道此錯誤的原因。 謝謝。
無需設置DataMember
只需調用綁定方法dataGridView1.DataBind()
。 如MSDN所述, DataMember
用於以下用途:
獲取或設置DataGridView正在為其顯示數據的數據源中的列表或表的名稱。
您不需要LINQ查詢。 只需將列表設置為數據源即可。 在這種情況下,無需設置DataMember。
private void Form4_Load(object sender, EventArgs e)
{
List<Products> productList = new List<Products>()
{
new Products{ProductName = "P1", ProductPrice = 56, Category = "c1"},
new Products{ProductName = "P2", ProductPrice = 36, Category = "c1"}
};
//var p = from s in productList select s;
dataGridView1.DataSource = productList;
//dataGridView1.DataMember = p.ToString();
}
編輯
LINQ查詢返回IEnumerable
; 但是,DataGridView類支持標准的Windows窗體數據綁定模型。 這意味着數據源可以是實現以下接口之一的任何類型:IList,IListSource,IBindingList和IBindingListView。 因此,您將需要對LINQ結果調用ToList()
。 在此MSDN鏈接上了解有關此的更多信息
但是,在您的情況下,這與將productList
設置為DataSource相同(我的意思是結果將是相同的,因為LINQ查詢中不涉及排序或分組)。
如果您想玩LINQ,請嘗試一下(您的列表將按ProductPrice
升序排列)
var p = from s in productList orderby s.ProductPrice select s;
dataGridView1.DataSource = p.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.