Prototypuję aplikację WPF z wzorcem MVVM. Po odpowiedzi na this question ustawiłem ModelProviderService
, który ujawnia modele jako właściwości. Konsumenci tej usługi to modele widokowe, tzn. Wyciągają swoje modele z serwisu, zamiast tworzyć je samodzielnie.Implementowanie mechanizmu wiadomości/subskrypcji w języku C#
class ModelProviderService {
private LoginModel loginModel;
public LoginModel LoginModel {
get { return loginModel; }
set { loginModel = value; }
}
private ProjectsModel projectsModel;
public ProjectsModel ProjectsModel {
get { return projectsModel; }
set { projectsModel = value; }
}
public ModelProviderService() {
loginModel = new LoginModel();
projectsModel = new ProjectsModel();
}
}
Teraz tutaj jest to, co powinno się zdarzyć:
- ViewModel zmienia właściwość np właściwość
LoginModel
. - ViewModel popycha właściwość modelu z powrotem do służby przez ustawienie jego właściwości:
modelService.LoginModel.MyProperty = localLoginModel.MyProperty;
- Usługa publikuje komunikat: „Hej, mój model typu
LoginModel
prostu zmieniły” - Każdy inny model widoku, który zasubskrybował tę wiadomość, pobierze ten zmieniony model z usługi.
Jak mogę realizować:
- "Message broadcast"?
- subskrypcji wiadomości?