开发者

How do I update the status bar from multiple viewmodels?

开发者 https://www.devze.com 2023-01-19 08:06 出处:网络
I ha开发者_StackOverflow社区ve 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?This is

I ha开发者_StackOverflow社区ve 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?


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");


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消