Vb.net 为什么控件共享数据表时会同步值?
因此,我有两个Vb.net 为什么控件共享数据表时会同步值?,vb.net,winforms,data-binding,datatable,.net-3.5,Vb.net,Winforms,Data Binding,Datatable,.net 3.5,因此,我有两个组合框绑定到一个简单的数据表(yes/no) 出于某种原因,每当我更改一个控件的值时,另一个控件都会以相同的方式翻转。然而,当我将行更改为comboBox2.DataSource=tentable.Copy()时,这个问题消失了 当我将.DataSource行更改为: comboBox1.DataSource = New BindingSource() With {.DataSource = tempTable} comboBox2.DataSource = New Binding
组合框
绑定到一个简单的数据表
(yes/no)
出于某种原因,每当我更改一个控件的值时,另一个控件都会以相同的方式翻转。然而,当我将行更改为comboBox2.DataSource=tentable.Copy()
时,这个问题消失了
当我将.DataSource
行更改为:
comboBox1.DataSource = New BindingSource() With {.DataSource = tempTable}
comboBox2.DataSource = New BindingSource() With {.DataSource = tempTable}
这个问题也解决了。所以我猜有某种类型的BindingSources
池在继续
有人能解释一下吗?绑定源具有position属性和PositionChanged事件。当位置改变时,其他控件接收该更新并相应地更新。通过使用不同的源,您的位置彼此独立。正如@LarsTech所说,您的第二个示例创建了两个独立的绑定源。第二个组合框不知道第一个组合框中的当前位置。但为什么它们在第一个实例中使用相同的
BindingSource
?代码中一定有什么东西故意为相同的对象提供相同的BindingSource
,不是吗?
comboBox1.DataSource = New BindingSource() With {.DataSource = tempTable}
comboBox2.DataSource = New BindingSource() With {.DataSource = tempTable}