Sto prototipando un'applicazione WPF con il pattern MVVM. Dopo aver risposto a this question, ho impostato uno ModelProviderService
che espone i modelli come proprietà. I consumatori del servizio sono i viewmodels, cioè estraggono i loro modelli dal servizio invece di istanziarli da soli.Implementazione di un meccanismo di messaggio/sottoscrizione in 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();
}
}
Ora, ecco cosa accadrà:
- Un ViewModel modifica una proprietà di esempio la proprietà
LoginModel
. - ViewModel spinge la proprietà del modello di nuovo al servizio impostando la sua proprietà:
modelService.LoginModel.MyProperty = localLoginModel.MyProperty;
- Il servizio pubblica un messaggio: "Ehi, il mio modello di tipo
LoginModel
appena cambiato" - Qualsiasi altro viewmodel che si è iscritto a questo messaggio estrarrà questo modello modificato dal servizio.
Come posso implementare:
- il "messaggio broadcast"?
- l'abbonamento al messaggio?