我的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中订阅这些消息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top