我在過去做了類似的事情,它運行良好(除了一個稍微髒亂的黑客)。Databinding combobox column to object(or null)in DGV
我有一個對象,機器,引用其他對象,如建築,水平等。我將這個數據綁定在DGV中。我將對象查找列設置爲DataGridViewComboBoxColumn
。爲了讓ComboBox返回對象本身而不是ID或其他東西,我必須像在其他一些帖子中提到的那樣執行「自我」屬性hack。
BuildingColumn.DataSource = buildings ' Loaded in from DB
BuildingColumn.DataPropertyName = "Building" ' Machine.Building
BuildingColumn.DisplayMember = "Abbreviation" ' Abbreviation of building
BuildingColumn.ValueMember = "Self" ' A property on the Building object that returns itself
如果可能,我想擺脫「自我」,但這確實是次要問題。
主要問題是我在Machine.Building = Nothing的行上得到DGV Data Errors。我如何避免這種情況?這也可能與我想在ComboBox中添加一個空白選項有關,因此用戶可以在需要時清空建築物。我認爲向ComboBox的數據源添加一個空值可以解決這兩個問題,但它沒有。
任何幫助將不勝感激:)。