Come posso aggiornare la barra di stato da più ViewModels?
Domanda
Ho MainWindow con una barra di stato e molteplici controlli utente in esso. Ogni controllo utente ha un ViewModel. Come faccio a bind / aggiornare il testo di barra di stato da più ViewModels?
Soluzione
Questo è un semplice che ho usato io.
Messenger sistema e dargli un esempio Singleton, diciamo ... StatusBarMessenger
MainWindow View-Modello:
- ha bisogno di una proprietà di stringa, per esempio. Stato.
- ha bisogno di registrarsi per lo StatusBarMessenger nel ctor
StatusBarMessenger.Instance.Register(this, new Action(s => Status = s));
Tutti i VM che richiede di inviare il testo alla barra di stato può effettuare le seguenti operazioni:
StatusBarMessenger.Instance.Send("Hello world");
Altri suggerimenti
Se si utilizza PRISM è possibile utilizzare la sua EventAggregator pubblicare (dai vostri Controlli utente) e messaggi in StatusBar VM Iscriviti a quei messaggi.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow