我有一个填充的组合框,我想绑定到整数。
想要的行为是,当数据源更改为新对象时,组合框选择的值会相应地更改为绑定到它的整数。
问题是默认绑定(我只是将数据源面板上的Integer拖放到组合框上)绑定了组合框的text属性,而不是SelectedIndex。
现在我有点像这样工作:
BindingSourceName.DataSource = Object
cmbType.SelectedIndex = Object.Type
但是我必须在用户修改时保存绑定对象的同时手动管理它 是否有正确的方法来更改默认的bindig bahaviour,使其自动将Integer绑定到我的组合框的SelectedIndex?
答案 0 :(得分:1)
如果我使用ValueMember作为索引,我能得到你想要的最接近的东西。例如:
我用我的几个项目填充我的Combobox:
Public Class NameValue
Property Name as String
Property Type as Integer
Public Sub New(ByVal pName as String, ByVal pVal as Integer)
Name = pName
Type = pValue
End Sub
End Class
Dim cmbList As New List(Of NameValue)
cmbList.Add(New NameValue("Name",1)
cmbList.Add(New NameValue("Name2",2)
cmbList.Add(New NameValue("Name3",3)
cmbType.Items = cmbList
cmbType.ValueMember = "Value"
cmbType.DisplayMember = "Type"
现在第一阶段已经完成。 Combobox包含三个名称和值绑定在一起的项目。下一步是设置您要求的内容:将ComboboxValue绑定到Object类。
cmbType.DataBindings.Add(New Binding("SelectedValue", BindingSourceName, "Type", False, DataSourceUpdateMode.OnPropertyChanged))
一旦BindingSource" BindingSourceName.DataSource"更改时,组合框应该更新。如果更改组合框,Object.Type将更改为选定的值。