Listbox mit eigener Klasse füllen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Joshi.

    Listbox mit eigener Klasse füllen

    Hallo ich habe eine Klassenbibliothek erstellt, aus der die Klasse Schwimmbad hervorgeht.
    Anschließend wurde eine List of Schwimmbad erstellt und die Eigenschaften festgelegt.
    Wie überträgt man nun am besten die Liste in eine Textbox oder Listbox? In der Konsole ist es schon gelungen aber sonst nicht.

    VB.NET-Quellcode

    1. Public Class Form2
    2. Dim Bäderbund_Stadt As New List(Of KlassenbibliothekUebung.Schwimmbad) From
    3. {New KlassenbibliothekUebung.Schwimmbad With {.name = "Gammelbad", .breite = 7.5, .länge = 12.5},
    4. New KlassenbibliothekUebung.Schwimmbad With {.name = "Stadtbad", .breite = 10, .länge = 25},
    5. New KlassenbibliothekUebung.Schwimmbad With {.name = "Olympiabad", .breite = 12.5, .länge = 50}}
    6. Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    7. Me.ListBox1.DataSource = Bäderbund_Stadt ' hier wird was falsches angezeigt in der Listbox
    8. End Sub
    9. End Class
    Die DisplayMember und ValueMember Eigenschaften der Listbox sind hier, neben der DataSource Eigenschaft, zu verwenden.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    VB.NET-Quellcode

    1. Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. Me.ListBox1.DataSource = Bäderbund_Stadt
    3. Me.ListBox1.DisplayMember = "name" 'funktioniert
    4. Me.ListBox1.DisplayMember = "länge" 'funktioniert auch
    5. Me.ListBox1.DisplayMember = "breite" 'funktiniert NICHT
    6. End Sub

    habe noch ein paar kleine Unklarheiten:
    - Wieso funktiniert Me.ListBox1.DisplayMember = "breite" nicht?
    - Kann immer nur EINE Eigenschaft in der Listbox angezeigt werden?
    - Wieso schreibt man die Displymember als String, es wird doch eine Eigenschaft abgerufen, das ist etwas verwirrend
    - Unter me.listbox1.valuemember findet sich oft "ID" jedoch sagt mir das nichts
    1. Weil bei dir vielleicht breite keine Property ist im Sinne von Property
      Weiss man nicht sicher - die Schwimmbad-Klasse zeigst du uns ja nicht.
    2. Ja. Willst du mehrere Eigenschaften sehen, nimm ein DatagridView
    3. Tja, das ist eine alte Technologie. Damals wusste man sich nicht anners zu helfen, als beim Databinding die Properties als String anzugeben
      Heutzutage würde man vermutlich Delegaten anwenden - aber der Zug ist sowas von abgefahren.
    4. das ist eine längere Geschichte. Derzeit hast du jdfs. noch keine Anforderung beschrieben, wo du das brauchen tätest.
      Wenn wolle guck in vier Views-Videos, und such nach allem, was zu Combobox (nicht: ComboboxColumn) gezeigt und gesagt wird.
      Obwohl: Prinzipiell gilt das zu ComboboxColumn gesagte ja auch, und wird sogar öfter verwendet.
      (Databinding-mässig gibt es übrigens keinen Unterschied zwischen List- und Combo-box - ist nur eine annere Darstellung. Kannst auch im ObjectBrowser mal gucken, was die Basisklasse von Combobox ist, und was die von Listbox)

    Schnellschuß: DataTemplates

    Moinsen.

    Ich muss gleich los, daher (schnell) einmal der Hinweis auf die "DataTemplates".

    Wenn ich wieder da bin, editiere ich mal den Beitrag, wenn das nicht jemand anders erwähnen sollte.

    c.u. Joshi mit hetzendem Kaffee... Ja. Ja. Ich komme ja schon... 8|
    DataTemplates? Bist Du gedanklich bei WPF? Denn der TE anscheinend nicht.
    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.
    @VaporiZed
    Yeah, I got WPF on my Mind.
    All Day long... Shubieedoobieee Doooh

    Ich war das nicht. Generelles Dementi.

    War halt 8 Uhr morgens...

    Wer erkennt eine Windows-Forms-Anwendung? Ich wohl eher nicht...

    c.u. und ab in die Versenkung, der schamchvollen Selbstbesinnung.