DataSet in WPF

  • WPF

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DataSet in WPF

    Hallo zusammen,

    ich überlege derzeit, wie sich DataSet und WPF (MVVM) miteinander vertragen.

    In meinem neuen Projekt sollen Daten bearbeitet, gespeichert und geladen werden. Das relationale Datenmodell in einem typisierten Dataset abzubilden ist auch kein Problem.
    Allerdings binde ich mein View normalerweise an Properties, die NotifyPropertyChanged aufrufen oder für Auflistungen an eine ObservableCollection. Nur eine DataTable gibt ihre Änderungen nicht bekannt.

    Jetzt frage ich mich, ist das DataSet überhaupt das richtige Tool in WPF? Wenn nicht, welches dann?
    Oder ist eine Kombination aus DataSet und Klassen-Modellierung eine saubere Lösung?

    Danke für alle Denkanstöße.
    Beim DataSet hast du eine Xml beim EF kannst du auch eine Lokale DB verwenden. Ist dann im Grund nicht mehr als eine sdf Datei.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Mir geht es auch weniger darum, in welchem Format die Daten am Ende gespeichert werden, sondern um das Binding der Daten an das View.
    Beim DataSet bzw den DataTables wird das View ja nicht über Änderungen benachrichtigt wie zB. bei einer ObservableCollection und das stellt ja bereits ein Problem dar.

    EntityFramework schaue ich mir mal an.
    Doch, auch beim Dataset gibts einen bindebaren Benachrichtigungs-Mechanismus.
    Allerdings ist der nicht typisiert, sondern das Bindungssystem eines Datasets (auch eines typisierten) hat bei Tabellen immer DataViews zwischengeschaltet, und bei DataRows immer DataRowViews.
    Also man greift nie auf typDataRows direkt zu, sondern eine BindingSourc, bzw. Wpf: CollectionView enthält nur DataRowView - Objekte, die dem Bindungssystem Daten bereitstellen, und die auch einen Verweis auf die DataRow enthalten, allerdings untypisiert.
    Daraus folgt der eine Nachteil:
    Im Gegensatz zum Form-Designer kann der Xaml-Editor diese komischen "QuasiProperties" der DataRowView nicht auflösen. Also zur Laufzeit funktioniert das zwar, aber im Xaml-Editor muss man die Bindings quasi im Blindflug hinschreiben.

    Der andere Nachteil ist, dass ein generiertes Dataset lauter eingeschachtelte Klassen enthält, und bislang gibts im Xaml keine Syntax, um einen eingeschachtelten Datentyp anzugeben.
    Damit ist die Möglichkeit verbaut, DataTemplates in Resourcen anzulegen.

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