我有一个带有DataGridView的表单,该表单绑定到继承绑定列表的业务对象。请注意,DGV并非直接绑定到数据库。
我已经使用文本框使它运行良好,但是现在需要在第一个可见列中添加一个ComboBox。
当前,使用VB IDE设置列,而我将第一个可见的设置为DataGridViewComboBoxColumn。
加载表单时,它将调用一个函数,该函数将DGV的数据源设置为一个对象,然后将每列的dataPropertyName设置为Object-BindingList的各种属性。
myPurchaseOrderItems.getCPOItems(myPurchaseOrder.id)
dgvPurchaseOrderItems.AutoGenerateColumns = False
dgvPurchaseOrderItems.DataSource = myPurchaseOrderItems
dgvPurchaseOrderItems.Columns(0).DataPropertyName = "cpo_id"
dgvPurchaseOrderItems.Columns(1).DataPropertyName = "id"
dgvPurchaseOrderItems.Columns(2).DataPropertyName = "product_code"
dgvPurchaseOrderItems.Columns(3).DataPropertyName = "description"
etc
前两列不可见。我有一个名为product_code的属性,如果将产品代码列设置为DataGridViewTextBoxColumn,它将填充“产品列”。
但是,当我在IDE中将列设置为DataGridViewComboBoxColumn时。我收到一个System.ArgumentException:DataGridViewComboBoxCell值无效。不足为奇,因为我还没有填充ComboBox。
如何填充?
我见过Adding and Populating DataGridViewComboBoxcolumn to Bound Datagridview
,但这看起来像是在DGV中添加了新列。我不想这样做,因为我已经通过IDE设置了列并为其指定了值。
我可以使用组合框应具有的值生成绑定列表,或者仅使用sql查询的结果。我只是不知道如何填充它。
谢谢!