List(Of Class) mit List(Of Class) in DGV darstellen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von MemoAnMichSelbst.

    List(Of Class) mit List(Of Class) in DGV darstellen

    Aloa,

    ich habe eine List(Of Class) in welcher wiederum ebenfalls eine List(Of Class) steckt.
    Diese möchte ich gerne hin und wieder in einem DGV als Vorschau anzeigen (nur für mich).
    Da ich das Gleiche an verschiedenen Stellen nutze, habe ich ne kleine Form mit nur:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class DataViewer
    2. Private _Data As IEnumerable(Of Object)
    3. Public Sub New(ByVal Data As IEnumerable(Of Object))
    4. ' Dieser Aufruf ist für den Designer erforderlich.
    5. InitializeComponent()
    6. _Data = Data
    7. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    8. End Sub
    9. Private Sub Dataviewer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    10. dgvContent.DataSource = _Data
    11. End Sub
    12. End Class

    Das tut auch brav was es soll, wenn ich dort ne List Of Class übergebe. Wenn diese aber wiederum Listen von Klassen enthält, wirft er die nicht mit raus.
    Kann man hier irgendwie generisch ohne groß Gefrickel im Standard eine Liste übergeben, welche ALLE Listen inkl. Unterlisten enthält?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    MemoAnMichSelbst schrieb:

    ALLE Listen inkl. Unterlisten
    musst Du halt zusammenwerfen in eine List (oder hab ich sdas falsch verstanden)?
    Mach mal ne Skizze, wo die herkommen und wo alle Info versammelt sein soll.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ein DGV kann halt nur eine Liste anzeigen.
    Verschachtelte Listen sind aber mehr als eine. Verschachtelte Listen sind tatsächlich die OOP-Repräsentation dessen was man relational betrachtet als 1:n-Relation bezeichnet.
    Und tatsächlich kann man verschachtelte Listen mit Databinding in einem ParentChild-View anzeigen.

    Da du das aber dynamisch haben willst, muss da wohl bischen mehr Code her, und ich bin nichtmal sicher, dasses machbar ist.
    Aber ich glaub schon.

    Ah - Idee 8o
    Es gibt ein Uralt-Winforms-Control namens Datagrid. Das ist eine eierlegende Wollmilchsau, die alles anzeigen kann, glaub auch verschachtelte Listen.
    Damit sollteste unbedingt mal mit rumspielen - binde da mal deine Liste an, und zwar nur als Datasource - kein Datamember festlegen.
    @Rod
    Wo die her kommen ist ja immer unterschiedlich. Ich möchte ja, dass ich ne kleine Form hab, in die ich ne Liste schmeißen kann und er hat die dann abzuarbeiten, egal wie verschachtelt sie denne ist.
    Ich dachte, da man ja mittlerweile so viel binden und verknüppeln kann, hat das schon jemand als nützliches Feature in .Net entdeckt und ich kann mir das manuelle zusammensammeln in ne neue Liste ersparen.

    @Erfinder
    Ich werd mal schauen ob der Grid das kann. Habe ich gar nicht dran gedacht.

    EDIT:
    Das geht oO
    Ohne Witz. Das Uraltdingen zeigt ohne zu murren alles an inklusive ner Treeansicht bei Unterlisten. Ich glaubs ja nicht oO
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()