Im Datagridview die Spalten dynamisch per Filter weglassen

  • WPF

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Prive.

    Im Datagridview die Spalten dynamisch per Filter weglassen

    Hallo

    Ich habe eine "übliche" Anwendung in der u.a. Personen verwaltet werden.
    Dazu nutze ich pro Person eine Klasse als Vorlage um die Standard Daten zu erfassen.
    Diese sieht auszugsweise so aus:

    VB.NET-Quellcode

    1. Public Class Person
    2. Private _RefNr As String = ""
    3. Private _Name As String = ""
    4. Private _VorName As String = ""
    5. ...
    6. Public Property RefNr As String
    7. Get
    8. Return _RefNr
    9. End Get
    10. Set(ByVal value As String)
    11. _RefNr = value
    12. End Set
    13. End Property
    14. Public Property Name As String
    15. Get
    16. Return _Name
    17. End Get
    18. Set(ByVal value As String)
    19. _Name = value
    20. End Set
    21. End Property
    22. Public Property VorName As String
    23. Get
    24. Return _VorName
    25. End Get
    26. Set(ByVal value As String)
    27. _VorName = value
    28. End Set
    29. End Property
    30. ....


    Die ganzen Personenobjekte sind wiederrum in einer List of (Person).

    Um schnell und einfach diese Daten anzuzeigen nutze ich ein Datagridview und binde diese Liste.
    zb dgv.ItemsSource = PersonList

    Nun zum eigendlichen Problem.
    Ich möchte Fallweise nicht alle Properties im Datagridview angezeigt bekommen. Also Spalten weglassen.
    Der User soll das ganze über einen Filter selbst definieren können. per Checkboxauswahl in einer Listview o.ä. Ich möchte es auch flexibel halten für den Fall das Properties einer Person in einer neueren Version hinzukommen.
    Das Auslesen der Properties sollte über Reflection funktionieren so das die Liste dynamisch befüllt werden kann.
    Dementsprechend müsste ich dann je nach Auswahl der Checkboxen die Spalten sichtbar oder unsichtbar machen. Hier weiss ich noch nicht wie ich diesen Schritt löse in zusammenhang mit Binding (wie die Zuordnung finden).
    Alternativ könnte es sicher alles händisch bauen. Also Datagridview Zeilen/Spaltenweise per Schleifen selbst befüllen usw.

    Da ich sicher nicht der erste mit solch einer Anforderung bin...gibt es doch sicher einen eleganteren Weg?

    Danke und Gruß