簡體   English   中英

C# DataGridViewComboBoxColumn 綁定問題

[英]C# DataGridViewComboBoxColumn binding problem

大家好! 我想這是我在 StackOverFlow.com 上的第一篇文章:-)

我已經有一段時間遇到這個問題了。 為簡單起見,假設我們有 2 個名為“books”“categories”的數據庫表,其架構如下:

書籍(ID,標題,catId)
類別(ID,貓名)

顯然, books”表中的“catId”字段是外鍵,指定一本書所屬的類別。

我已經創建了必要的 LinQ to Sql 類並創建了必要的 bindingSource 對象。 我想要做的是在 DataGridView 對象中顯示所有書籍。 我希望它有一個名為“Category”的列,它是DataGridViewComboBoxColumn類型,包含所有現有的類別,並為每本書顯示特定書籍所屬的類別。 用戶可以通過在組合框中選擇另一個類別來重新分配書籍的類別。

我已經設法用ComboBox做我想做的事,而且它按我的意願工作。 但是當涉及到DataGridView 時,我就是想不通。

任何幫助將不勝感激我花了幾天時間想辦法但到目前為止沒有運氣:-(

這應該有效:

// create the column (probably better done by the designer)
DataGridViewComboBoxColumn categoryColumn = ...


// bind it
categoryColumn.DataSource = db.Categories.ToList();
categoryColumn.DisplayMember = "catName";  // display category.catName
categoryColumn.ValueMember = "id";         // use category.id as the identifier
categoryColumn.DataPropertyName = "catId"; // bind the column to book.catId

我設法通過覆蓋相關類中的 ToString() 方法來做到這一點。 對於您的情況,您可以添加類別的定義:

public override string ToString()
{
   return this.catName
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM