gebundenes Formular Combobox zeigt Valuemember an wenn der Wert gleich bleibt

  • VB.NET
  • .NET (FX) 4.0

    gebundenes Formular Combobox zeigt Valuemember an wenn der Wert gleich bleibt

    Ich habe hier ein seltsames Phänomen.
    Ich habe ein gebundenes Formular mit gebundenen Comboboxen.
    Die combobox cboKostensaetze ist an die Bindingsource des Formulars gebunden, so das die Einträge über diese Combobox oder das Treeview ausgewählt werden können.
    Das seltsame Verhalten zeigte sich auch schon, als nur die Combobpx zum Suchen vorhanden war. Mit Hilfe des Treeviews konnte ich den Fehler auf die gleichbleibenden Werte eingrenzen.
    Wenn sich der Valuemember der Combobox ändert, wird auch der Displaymember angezeigt.
    Bleibt der Valuemember jedoch gleich zeigt er auf einmal nur den Valuemember an.
    Die messagebox in der Routine tvwKostensaetze_AfterSelect bestätigt die Werte die ich in der Combobox zu sehen bekomme.
    Woran kann das liegen ?

    VB.NET-Quellcode

    1. Public Class frm_Kostensaetze
    2. Dim Finanzen As dsFinanzen = dsFinanzen.GetInstance
    3. Dim Rechnerliste As dsRechnerliste_be = dsRechnerliste_be.GetInstance
    4. Dim dtrowsGruppenname As dsFinanzen.tbl_GruppennameRow()
    5. Sub New()
    6. ' Dieser Aufruf ist für den Designer erforderlich.
    7. InitializeComponent()
    8. Me.Tbl_Kostensätze_BKUBindingSource.DataSource = Rechnerliste.tbl_Kostensätze_BKU
    9. Me.TblErloesgruppenBindingSource.DataSource = Finanzen.tbl_Erloesgruppen
    10. Me.TblGruppennameBindingSource.DataSource = Finanzen.tbl_Gruppenname
    11. Me.TblAnwendungBindingSource.DataSource = Rechnerliste.tbl_Anwendung
    12. With Me.cboID_Erloesgruppe
    13. .DataSource = Finanzen.tbl_Erloesgruppen
    14. .DisplayMember = Finanzen.tbl_Erloesgruppen.ErloesgruppeColumn.ColumnName
    15. .ValueMember = Finanzen.tbl_Erloesgruppen.ID_ErloesgruppeColumn.ColumnName
    16. End With
    17. With Me.cboID_Gruppenname
    18. .DataSource = Finanzen.tbl_Gruppenname
    19. .DisplayMember = Finanzen.tbl_Gruppenname.GruppennameColumn.ColumnName
    20. .ValueMember = Finanzen.tbl_Gruppenname.ID_GruppennameColumn.ColumnName
    21. End With
    22. Me.cboID_Erloesgruppe.DataBindings.Add("SelectedValue", Me.Tbl_Kostensätze_BKUBindingSource, Rechnerliste.tbl_Kostensätze_BKU.ID_ErloesgruppeColumn.ColumnName)
    23. Me.cboID_Gruppenname.DataBindings.Add("SelectedValue", Me.Tbl_Kostensätze_BKUBindingSource, Rechnerliste.tbl_Kostensätze_BKU.ID_GruppennameColumn.ColumnName)
    24. For Each dtrowGruppenname As dsFinanzen.tbl_GruppennameRow In Finanzen.tbl_Gruppenname.Rows
    25. Dim nodGruppenname As New ExtendedControls.SpecialTreeNode
    26. With nodGruppenname
    27. .Art = "Gruppenname"
    28. .ID = dtrowGruppenname.ID_Gruppenname
    29. .Text = dtrowGruppenname.Gruppenname
    30. End With
    31. Me.tvwKostensaetze.nodesadd(nodGruppenname)
    32. With Rechnerliste.tbl_Kostensätze_BKU
    33. Dim dtrowsKostensaetze As dsRechnerliste_be.tbl_Kostensätze_BKURow() = DirectCast(.Select(.ID_GruppennameColumn.ColumnName & "=" & dtrowGruppenname.ID_Gruppenname, .ProduktColumn.ColumnName), dsRechnerliste_be.tbl_Kostensätze_BKURow())
    34. For Each dtrowKostensaetze In dtrowsKostensaetze
    35. Dim nodKostensaetze As New ExtendedControls.SpecialTreeNode
    36. With nodKostensaetze
    37. .ID = dtrowKostensaetze.ID_Kostensaetze
    38. .Art = "Kostensaetze"
    39. .Text = dtrowKostensaetze.Produkt
    40. End With
    41. nodGruppenname.nodesadd(nodKostensaetze)
    42. Next
    43. End With
    44. Next
    45. End Sub
    46. Private Sub tvwKostensaetze_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles tvwKostensaetze.AfterSelect
    47. Dim extendednod As ExtendedControls.SpecialTreeNode = DirectCast(e.Node, ExtendedControls.SpecialTreeNode)
    48. Select Case extendednod.Art
    49. Case "Kostensaetze"
    50. Me.cboKostensaetze.SelectedValue = extendednod.ID
    51. MessageBox.Show(Me.cboID_Gruppenname.DisplayMember & "Text: " & Me.cboID_Gruppenname.Text & " SelectedValue " & Me.cboID_Gruppenname.SelectedValue.ToString)
    52. End Select
    53. End Sub
    54. End Class