Beliebige Datensätze anzeigen, sortieren, etc.: Beste Methode?



  • Guten Tag,

    Ich habe eine Datenbank, aus deren Schema ich zur Laufzeit Klassen erzeuge und auch bereits prima benutzen kann (à la Entity Framework, nur vollkommen zur Laufzeit erzeugt mit Reflection.Emit). Beispielsweise gibt es in der Datenbank eine Tabelle Resource, mit Feldern, die ich nicht kenne. Ausgehend vom Schema wird eine Klasse Resource erzeugt mit unter anderem einigen Properties, welche eben diese Felder ansprechbar machen. Später arbeite ich dann mit Instanzen dieser Klasse, anstelle der nackten Daten. Dies ist notwendig, weil die Klassen teilweise spezielles Verhalten definieren, mit Vererbung, ...

    Nun möchte ich eine Liste solcher Instanzen in einer ListView für den Benutzer verwendbar machen. Folgende Fragen:

    • Wie baue ich eine ListView, welche zur Laufzeit für einen beliebigen Element-Typen die richtigen Eigenschaften sichtbar macht?
    • Wie baue ich eine allgemein gültige Sortierung in einer ListView, bei der die Spalten noch nicht bekannt sind?
    • Wie baue ich einen allgemein gültigen Filter für die ListView, bei der die Spalten noch nicht bekannt sind?

    Das Problem ist ja genau, dass ich erst zur Laufzeit weiss, welche Eigenschaften überhaupt vorhanden und auch relevant sind (ich habe derzeit das BrowsableAttribute von ComponentModel für die Markierungen vergewaltigt). Es ist deshalb extrem schwierig, die ganzen Xaml-Templates und ähnliches zu verwenden. Wenn ich das Zeugs statisch binden und anzeigen lasse, funktioniert es sehr angenehm, ist aber nicht nützlich. In allen Beispielen wird davon ausgegangen, dass die Datenbank immer gleich aussieht. Ich befinde mich im Wettlauf mit dem sich ständig verändernden Datenbankschema (dieses kann sich sogar während dem Programmablauf mehrfach ändern) und stehe auf dem Schlauch.

    Wie macht man das am besten? 😮

    Danke für jeden Tipp.


Anmelden zum Antworten