3 个组合框都连接到 1 个数据源,需要能够选择单独的选项

3 combo boxes all connected to 1 datasource, Need to be able to pick seperate options

我在一个表单上有 3 个组合框,它们都连接到同一个数据源。数据源有 8 个选项可以 selected。我怎样才能在组合框中选择 3 个不同的选项。一旦我 select 1 项,所有组合框都会更改为相同的选项。

Private Sub FrmExtras_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'RatesDataSet.Extras' table. You can move, or remove it, as needed.
        Me.ExtrasTableAdapter.Fill(Me.PricingDataSet.Extras)
    End Sub
Private Sub CboOptions1_SelectedIndexChanged(sender As Object, e As EventArgs) 'Handles CboOptions1.SelectedIndexChanged
        If Trim(CboOptions1.Text) <> "O Pick Your Option" Then
            TxtQty1.Text = 1
        End If
    End Sub

问题是你只有一个 CurrencyManager。使用单个 CurrencyManager 绑定到同一数据源的三个控件将保持同步。

引入 BindingSource 组件是为了提供与绑定相关的所有事物的一站式服务,包括对 CurrencyManager 的访问。 BindingSource 的许多关闭成员传递到基础 CurrencyManager.

在这种情况下,您需要为每个 ComboBox 创建一个单独的 BindingSource,这将导致单独的 CurrencyManager,这将导致独立的选择。我没有看到绑定代码,所以我假设您是在设计器中进行绑定的。检查那些 ComboBoxesDataSource 属性,我想你会发现它们都绑定到相同的 BindingSource。检查 BindingSourceDataSourceDataMember,您应该会发现它已绑定到 DataSet.

DataTable

您需要在表单中添加两个新的 BindingSources 并以相同的方式将它们绑定到同一个 DataTable。然后,您可以将这两个 BindingSources 绑定到 ComboBoxes 中的两个。然后您应该会发现您可以在所有三个中进行独立选择。

您可以尝试为其他组合框创建新的 BindingContext

combobox1.DataSource = results
combobox1.DisplayMember = "DisplayValue"
combobox1.ValueMember = "Value"

combobox2.BindingContext = New BindingContext()
combobox2.DataSource = results
combobox2.DisplayMember = "DisplayValue"
combobox2.ValueMember = "Value"