Ich verstehe, dass in der MVVM-Muster, dass ein ViewModel nichts über die Ansicht wissen sollte.Was ist der beste Weg für das ViewModel, die Ansicht zu manipulieren?
So scheint es zwei Möglichkeiten, um, dass das Ansichtsmodell kann Ursache etwas Besonderes auf der Benutzeroberfläche passieren, diese gemeinsame Fluss der Ereignisse berücksichtigen:
- Benutzer tippt etwas in einer Textbox
- Benutzer klickt Knopf
- Knopf benennt DelegateCommand genannt "Save" auf Viewmodel
- Ansicht Modell speichert Text aus Textfeld
- wenn alles während des Speicherns gut geht, das View-Modell ändert seine INotifyPropertyChanged Eigenschaft namens SaveStatus auf „Gelungen“
nun in der Ansicht, ich zwei Möglichkeiten haben, diese Änderung zu Auswirkungen auf haben zu ermöglichen, die UI:
- in der Ansicht könnte ein Textblock sein, der einen Converter drauf hat, das den Text von SaveStatus zu einem Satz wie „die konvertiert speichern s war erfolgreich. "
- in der Ansicht könnte ein Trigger- sein, die überprüft, ob SaveStatus = „Erfolgreich“ und wenn ja, dann eine Reihe von Setters die Benutzeroberfläche entsprechend ändern (Elemente versteckt, Texte zu ändern, Farben zu ändern, usw. )
Ist das der Grund Informationsfluss von Modelview anzeigen, die Sie in Ihren Anwendungen verwenden?