Como atualizo a barra de status de vários models do ViewModels?
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?
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