我在过去做了类似的事情,它运行良好(除了一个稍微脏乱的黑客)。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的数据源添加一个空值可以解决这两个问题,但它没有。
任何帮助将不胜感激:)。