MVVM: Powiązanie z modelem przy jednoczesnym zachowaniu synchronizacji modelu z wersją serwera

Spędziłem trochę czasu, aby spróbować znaleźć eleganckie rozwiązanie dla następującego wyzwania. Nie udało mi się znaleźć rozwiązania, które byłoby czymś więcej niż hackiem wokół problemu.

Mam prostą konfigurację widoku, ViewModel i modelu. Dla wyjaśnienia będę to bardzo proste.

TheModel ma jedną właściwość o nazwieTitle typu String.TheModel jest DataContext dlaView.TheView maTextBlock to jest połączenie danych doTitle na modelu.TheViewModel ma metodę zwanąSave() to uratujeModel do aServerTheServer może wcisnąć zmiany wprowadzone wModel

Jak na razie dobrze. Teraz muszę dokonać dwóch zmian, aby utrzymać synchronizację modelu zServer. Typ serwera nie jest ważny. Po prostu wiem, że muszę zadzwonićSave() w celu popchnięcia Modelu doServer.

Korekta 1:

TheModel.Title właściwość będzie musiała zadzwonićRaisePropertyChanged() w celu przetłumaczenia zmian dokonanych wModel przezServer doView. To działa dobrze odModel jest DataContext dlaView

Nieźle.

Korekta 2:

Następnym krokiem jest zadzwonićSave() aby zapisać zmiany wprowadzone wView doModel naServer. Tu utknąłem. Mogę sobie poradzićModel.PropertyChanged wydarzenie naViewModel wywołuje Save (), gdy model zostanie zmieniony, ale powoduje to echo zmian wprowadzonych przez serwer.

Szukam eleganckiego i logicznego rozwiązania i jestem gotów zmienić moją architekturę, jeśli ma to sens.

questionAnswers(5)

yourAnswerToTheQuestion