CheckedListbox mit DataSource - angehakte Objekte auslesen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    CheckedListbox mit DataSource - angehakte Objekte auslesen

    Moin !

    ich habe die Daten für eine CheckedListBox mittels Datasource wie folgt angebunden:

    VB.NET-Quellcode

    1. If Data4List.Count > 0 Then
    2. With Control ' zuweisen der Daten
    3. Dim NewBindingSource As New BindingSource With {.DataSource = Data4List}
    4. .DataSource = NewBindingSource
    5. .DisplayMember = "Value"
    6. .ValueMember = "Key"
    7. .Enabled = True
    8. End With
    9. Else
    10. 'Todo: hier muss eventuell noch etwas ergänzt werden
    11. Control.Enabled = False
    12. End If


    Kann mir einer sagen, wie ich bei den angehakten Elementen an die Werte komme vom ValueMember?

    Gruß Jan

    VB.NET-Quellcode

    1. For Each CheckedItem In Control.CheckedItems.Cast(Of DeinDatentypInDemValueUndKeyDeklariertSind)
    2. MessageBox.Show(CheckedItem.Key.ToString)
    3. Next
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    oder mit einer Klasse..

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Public Class CheckBoxCustomerItem
    4. Public Property DisplayMember As String
    5. Public Property ValueMember As Integer
    6. Public Overrides Function ToString() As String
    7. Return DisplayMember
    8. End Function
    9. End Class
    10. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    11. Dim items As New List(Of CheckBoxCustomerItem) From
    12. {
    13. New CheckBoxCustomerItem With {.DisplayMember = "Klaus", .ValueMember = 100},
    14. New CheckBoxCustomerItem With {.DisplayMember = "Ute", .ValueMember = 140},
    15. New CheckBoxCustomerItem With {.DisplayMember = "Michael", .ValueMember = 300}
    16. }
    17. For Each item As CheckBoxCustomerItem In items
    18. CheckedListBox1.Items.Add(item)
    19. Next
    20. End Sub
    21. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    22. If CheckedListBox1.CheckedItems.Count > 0 Then
    23. Dim currentValue As Integer = 0
    24. For Each checkedItem As CheckBoxCustomerItem In CheckedListBox1.CheckedItems
    25. currentValue = checkedItem.ValueMember
    26. Debug.Print(CStr(currentValue))
    27. Next
    28. End If
    29. End Sub
    30. End Class


    gruss
    Moin!

    erst einmal vielen Dank für die Hilfe.

    Aber was ich nicht verstehe ist die Tatsache, das bei mir als Debug-Ausgabe (in meinem Code) folgendes angezeigt wird:

    [U_VERSICKERUNG_JN, VERSICKERUNG]


    Ich hätte nur

    U_VERSICKERUNG_JN


    erwartet.

    Gruß Jan
    Moin!

    Vollzitat eines Vorposts durch Anredefunktion ersetzt ~VaporiZed
    @Yanbel

    natürlich nicht, weil ich auf die o.g. Anbindung zurückgreife und diese an vielen Stellen bereits verwende.

    Ich muss dann wohl einiges noch umbauen für diese Stelle.

    Melde mich ansonsten nochmal.

    Gruß Jan

    Jetzt ist alles geklärt.

    Jan

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „VaporiZed“ ()