Ich kämpfe weiterhin mit dem MVVM-Muster und bin bei dem Versuch, ein praktisches Design für ein kleines/mittleres Projekt zu erstellen, auf eine Reihe von Herausforderungen gestoßen. Eine dieser Herausforderungen besteht darin, herauszufinden, wie man die Vorteile der Entkopplung mit diesem Muster nutzen kann, ohne eine Menge sich wiederholenden, schwer zu wartenden Code zu erstellen.
Meine derzeitige Strategie besteht darin, "umfangreiche" Modellklassen zu erstellen. Sie sind sich dessen bewusst, dass sie von einem MVVM-Muster verwendet werden und implementieren INotifyPropertyChanged, erlauben, dass ihre Sammlungen beobachtet werden und sind sich bewusst, dass sie immer beobachtet werden können. Meine ViewModel-Klassen neigen dazu, dünn zu sein, und geben nur dann Eigenschaften preis, wenn Daten tatsächlich transformiert werden müssen, wobei der Großteil ihres Codes aus RelayCommand-Handlern besteht. Views binden sich gerne entweder an ViewModels oder Models direkt, je nachdem, ob eine Datentransformation erforderlich ist. Ich verwende AOP (über Postsharp), um die Schmerzen von INotifyPropertyChanged zu lindern, was es einfach macht, alle meine Model-Klassen auf diese Weise "reich" zu machen.
Gibt es wesentliche Nachteile bei diesem Ansatz? Kann ich davon ausgehen, dass das ViewModel und die View so eng miteinander gekoppelt sind, dass ich, wenn ich eine neue Datentransformation für die View benötige, diese einfach dem ViewModel bei Bedarf hinzufügen kann?