views:

15

answers:

2

I have MainWindow with a statusbar and multiple user controls in it. Each user control has a viewmodel. How do I bind/update the statusbar text from multiple viewmodels?

A: 

If you are using PRISM then you can use its EventAggregator to Publish (from your user controls) messages and in StatusBar VM Subscribe to those messages.

ozczecho
A: 

This is a simple one that I have used myself.

Implement a Messenger system and give it a Singleton instance, say... StatusBarMessenger

MainWindow View-Model:

  • Needs a string property, eg. Status.
  • Needs to register to the StatusBarMessenger in the Ctor
StatusBarMessenger.Instance.Register(this, new Action(s => Status = s));

All VM that requires to send text to the status bar may do the following:

StatusBarMessenger.Instance.Send("Hello world");
Tri Q
Great answers thanks!
DaveO