MVVM: Bindung an Model, während Model mit einer Serverversion synchronisiert bleibt

Ich habe einige Zeit damit verbracht, eine elegante Lösung für die folgende Herausforderung zu finden. Ich war nicht in der Lage, eine Lösung zu finden, die mehr als nur ein Hack um das Problem ist.

Ich habe ein einfaches Setup für ein View, ViewModel und ein Model. Ich werde es der Erklärung halber sehr einfach halten.

DasModel hat eine einzige Eigenschaft namensTitle vom Typ String.DasModel ist der DataContext für dieView.DasView hat einTextBlock das ist datengebunden anTitle auf dem Modell.DasViewModel hat eine Methode aufgerufenSave() das wird das rettenModel zu einemServerDasServer können Änderungen an derModel

So weit, ist es gut. Nun müssen zwei Einstellungen vorgenommen werden, um das Modell mit a synchron zu haltenServer. Der Servertyp ist nicht wichtig. Weiß nur, dass ich anrufen mussSave() um das Modell an die zu schiebenServer.

Anpassung 1:

DasModel.Title Eigentum muss anrufenRaisePropertyChanged() Um die Änderungen zu übersetzen, die an derModel bis zumServer zumView. Das funktioniert gut seit demModel ist der DataContext für dieView

Nicht so schlecht.

Anpassung 2:

Der nächste Schritt ist, anzurufenSave() Speichern von Änderungen aus demView zumModel auf derServer. Hier stecke ich fest. Ich kann damit umgehenModel.PropertyChanged Veranstaltung auf derViewModel Diese Methode ruft Save () auf, wenn das Modell geändert wird, gibt jedoch die vom Server vorgenommenen Änderungen wieder.

Ich suche eine elegante und logische Lösung und bin bereit, meine Architektur zu ändern, wenn es Sinn macht.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage