Pergunta

Eu tenho o MainWindow com uma barra de status e vários controles de usuário. Cada controle do usuário possui um ViewModel. Como faço para vincular/atualizar o texto StatusBar de vários models de exibição?

Foi útil?

Solução

Este é simples que eu me usei.

Implementar a Mensageiro sistema e dê uma instância de singleton, digamos ... StatusBarmessenger

MainWindow View-Model:

  • Precisa de uma propriedade de string, por exemplo. Status.
  • Precisa se registrar no StatusBarmessenger no CTOR
StatusBarMessenger.Instance.Register(this, new Action(s => Status = s));

Toda a VM que exige enviar texto para a barra de status pode fazer o seguinte:

StatusBarMessenger.Instance.Send("Hello world");

Outras dicas

Se você estiver usando o PRISM, poderá usar o EventAggreger para publicar as mensagens (dos controles do usuário) e no statusbar VM assinar essas mensagens.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top