有幾個關於此的帖子,但經過幾個小時的搜索,我仍然無法找到我所需要的。將數據綁定列數據綁定到每行datagridview(不是整列)
在以下職位的回答幾乎讓我什麼,我想: Combobox for Foreign Key in DataGridView
問題1:
去關閉該例子,其中一個產品有很多許可證,我的數據庫映射都是多對一這意味着我的許可證類擁有對產品類的引用。該License類沒有ProductId的屬性,因爲可以通過產品參考獲取該屬性。我不想用引用Product和ProductId屬性的方法來清理許可證類,以便更容易地在UI中進行綁定。
因此,我無法將DataPropertyName
設置爲Id字段。它需要的類引用名字,像這樣:
DataGridViewComboBoxColumn dataGridViewComboBoxColumn =
(DataGridViewComboBoxColumn)myDataGridView.Columns("LicenseComboBoxColumn");
dataGridViewComboBoxColumn.DataPropertyName = "License"; // not LicenseID
**** ****更新我 能得到這個沒有通過指定Product.Id作爲創建產品ID屬性部分工作DataPropertyName像這樣:
dataGridViewComboBoxColumn.DataPropertyName = "License.Id";
但是,這樣做的時候,它打破了這引起了我的手工獲取和設置單元格的值數據綁定。
我也看到了帖子關於綁定到DataGridView細胞,但數據綁定符,當我做到這一點,數據源本身從不更新:
// populate the combo box with Products for each License
foreach (DataGridViewRow row in myDataGridViewProducts.Rows)
{
IProduct myProduct = row.DataBoundItem as IProduct;
DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)row.Cells("myProductCol");
cell.DataSource = getListOfILicenseObjectsFromDao(myProduct.Id);
cell.Value = myProduct.License.Id;
}
也許我做錯了什麼,或者也許有一種不同的方式。任何人都可以幫忙嗎?
問題2:
如何顯示牌照爲每個產品不同的名單? 換句話說,對於網格中的每個產品,許可證的組合框列表將不同。我想用數據綁定來完成這個工作,所以我不必親自去設置這些值。