Надеюсь, мой титул имеет смысл. Я хочу сделать следующее:
- Привязка элементов списка со списком
- Привязать выбранный элемент к свойству (отдельно от списка)
- Обновите SelectedItem ComboBox, как только что-то в объекте изменится (например, когда свойство, связанное с SelectedItem, изменяется программно, SelectedItem ComboBox также изменяется соответственно)
Я уже успел сделать первые две вещи, но застрял в пункте 3. Привязка данных работает только в одну сторону. Это означает, что когда я выбираю новый элемент из ComboBox, объект в коде изменяется соответствующим образом. Но если я изменю объект в коде или если он имеет начальное значение, SelectedItem ComboBox не будет обновлен / предварительно выбран.
cbErledigungsArt.DataSource = _erledigungsArten.ToArray()
cbErledigungsArt.DisplayMember = "Beschreibung"
cbErledigungsArt.ValueMember = "ID"
cbErledigungsArt.DataBindings.Add("SelectedItem", _feststellung, "ErledigungsArt")
Festellung - это пользовательский тип:
Public Class FeststellungDTO
Public Property Jahr() As Integer
Public Property ErledigungsArt() As ErledigungsArtDTO
End Class
Erledigungsart - это свойство, связанное с ComboBox
Public Class ErledigungsArtDTO
Public Property ID() As Integer
Public Property Beschreibung() As String
End Class
Я хочу сказать, например:
Dim _feststellung As New FeststellungDTO() With {
.Jahr = 2015,
.ErledigungsArt = New ErledigungsArtDTO() With {.ID = 0, .Beschreibung = "Bla"}
}
Dim _erledigungsArten As New List(Of ErledigungsArtDTO)(
{
New ErledigungsArtDTO() With {.ID = 0, .Beschreibung = "Bla"},
New ErledigungsArtDTO() With {.ID = 1, .Beschreibung = "Blu"}
}
)
cbErledigungsArt.DataSource = _erledigungsArten.ToArray()
cbErledigungsArt.DisplayMember = "Beschreibung"
cbErledigungsArt.ValueMember = "ID"
cbErledigungsArt.DataBindings.Add("SelectedItem", _feststellung, "ErledigungsArt")
'SelectedItem will become "Bla"
_feststellung.ErledigungsArt = New ErledigungsArtDTO() With {.ID = 1, .Beschreibung = "Blu"}
'SelectedItem will become "Blu"
'User now selects "Bla" from the ComboBox and the value of _festellung.ErledigungsArt will change accordingly
Возможно ли это?