题
我的MainWindow具有一个状态栏和多个用户控件。每个用户控件都有一个ViewModel。如何从多个ViewModels绑定/更新状态栏文本?
解决方案
这是我自己使用过的简单的。
实施 信使 系统并给它一个单例实例
MainWindow View Model:
- 需要一个字符串属性,例如。地位。
- 需要注册到CTOR中的statusbarmessenger
StatusBarMessenger.Instance.Register(this, new Action(s => Status = s));
所有需要将文本发送到状态栏的VM可能会执行以下操作:
StatusBarMessenger.Instance.Send("Hello world");
其他提示
如果您使用的是Prism,则可以使用其EventAggregator来发布(从您的用户控件)消息,并在状态栏VM中订阅这些消息。
不隶属于 StackOverflow