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?

È stato utile?

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
scroll top