在我的表单中,我有一个DataGridView绑定到一个BindingSource有DataSetas的 a DataSource。我在表单上还有一些 TextFields 和 ComboBoxes,它们DataSet通过BindingSource. 这个想法是,在选定行的列中的值DataGridView反映在窗体上的其他控件中。也许我让它听起来有点复杂,但连接 TextField 以及绑定到数据集中表的 ComboBox 相当容易。
我的问题是,这次我想ComboBox从数组中设置项目,而不是从DataSet. 这是我尝试过的:
Me.ComboBox.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.TblBindingSource, "ColumnName", True))
Dim ItemArray(2) As String
ItemArray(0) = ""
ItemArray(1) = "Default"
ItemArray(2) = "User-set"
ComboBox.DataSource = ItemArray
现在,这似乎部分工作,因为ComboBox正确填充,我可以选择一个值,它出现在DataGridView. 但是当我更改DataGridView. 该列("ColumnName")是一个ComboBoxColumn以上面显示的方式获取其项目列表的列,并且它可以按预期工作。
如果不清楚;我有几个具有类似功能的组合框,但它们绑定到 a 中的列DataTable,如下所示:
Me.ComboBox1.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.Tbl1BindingSource, "WiDMethodX", True))
Me.ComboBox1.DataSource = Me.Tbl2BindingSource
Me.ComboBox1.DisplayMember = "SomeColumn"
Me.ComboBox1.ValueMember = "SomeColumn"
如果重要,则DataSet来自Access Database.