4
大家好!我想這是我在StackOverFlow.com上的第一篇文章:-)C#DataGridViewComboBoxColumn綁定問題
我一直有這個問題一段時間。 爲了讓這一切簡單,假設我們有一個名爲「書」和「類別」下面的模式2個的數據庫表:
書(ID,標題,CATID)
類別(ID, catName)
顯然「CATID」在「本本」表的外鍵,並指定一本書屬於一個類別字段。
我已經創建了必要的LinQ to Sql類並創建了必要的bindingSource對象。 我想要做的是在DataGridView對象中顯示所有書籍。我希望它有一個名爲的「類別」列,其類型爲DataGridViewComboBoxColumn包含所有現有類別,並且每本書都顯示特定圖書所屬的類別。用戶可以通過在組合框中選擇另一個類別來重新分配書籍的類別。
我已經設法做到了我想要的組合框,它的工作原理與我想要的一樣。 但是,當涉及到DataGridView我只是無法弄清楚。
任何幫助將不勝感激 我花了幾天時間來想辦法的,但至今沒有運氣:-(
WOW我簡直不敢相信!它的工作方式就是我想要的,非常感謝你! 事情是我花了無數小時玩這些屬性,我也設置了它們,但都沒有成功 猜猜我遇到的問題是「DataSource」我設置了。 我用LinQ來選擇它們,它不起作用。猜猜「ToList()」方法這些都是魔法! :-) 小心解釋我們到底在做什麼? 我總是會將「DisplayMember」與「DataPropertyName」混淆。 :-p 再次非常感謝您的精確答案:-) – M2X 2010-09-21 10:02:17
DataPropertyName是所有DGV列的通用屬性。它是由該列表示的數據對象成員的名稱。 DisplayMember/ValueMember特定於DataGridViewComboBoxColumn。這些表示分別代表用於在UI中顯示對象的成員以及用作組合框的「選定值」的成員(請注意,這些屬性對於ComboBox或ListBox等其他控件也存在) – 2010-09-21 10:20:38
感謝您說明! 「DataPropertyName」設置爲「catId」,它是「book」的屬性。 「categoryColumn」的「DataSource」分配給「Categories」。 這是如何工作的? AFAIK我們告訴編譯器,「categoryColumn」綁定到「Books」的「catId」。但「categoryColumn」和「Books」之間的鏈接在哪裏? – M2X 2010-09-21 11:03:00