最接近我能達到你想要的是如果我使用ValueMember索引。例如:
我填補我的組合框,像這樣一對夫婦項目:
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將更改爲選定的值。
那麼,obv這不能編譯(cmb.Items是隻讀等),但該方法似乎工作。我用一個字典(這是一個vb.net標準)替換了自定義類,並使用SelectedIndex更改了綁定中指定的屬性。而不是項目= ...這是不可行的我用cmbType.DataSource =新的BindingSource(cmbTypeItems,無),從cmbTypeItems,這是我的字典中的鍵值。最後一個問題是:它似乎工作,是否有兩個綁定在同一控件上處於活動狀態是正確的? – DkSw
對不起,項目是數據源。 – WozzeC
我不能看到有兩個綁定的任何問題,因爲他們是兩個不同的東西。一個綁定用於內容,一個綁定用於值(在這種情況下爲索引)。 – WozzeC