2011-05-12 59 views
3
  1. MVVM消息传递与RaisePropertyChanged有什么区别。MVVM消息传递与RaisePropertyChanged <T>

  2. 我想在视图模型B中的一个属性,当视图模型B中的属性更改时,哪种方法是更好的使用 - 消息或RaisePropertyChanged广播?

感谢, 尼基尔

回答

3
  1. 消息解耦您的视图模型。这就像一个推文,你发送一条消息到空中,有人可以阅读,或有人可以注册听它。用户界面使用PropertyChanged来了解某些内容已更改并重新绘制值。

  2. 消息传递绝对是最好的选择。 MVVM灯具有内置广播消息的选项。您可以使用mvvminpc代码片段。

令人惊讶的是,您的文章没有得到更快回答。也许这个答案对那里的人仍然有用。

1

,关注@凯文的帖子:

消息确实是用于解耦交际。这意味着一旦发送邮件一个或多个收件人 - 谁已注册他们对特定邮件类型的兴趣 - 被通知。

一般来说,我使用INotifyPropertyChanged当视图和视图模型之间的交际而言(通过数据绑定)和消息时,我想多视图模式之间或向上从视图模型的视图和数据绑定是通信不关心。

在视图模型中接收消息时,请确保您拨打CleanupMessenger取消注册。如果您在视图中处理消息 - 没有Cleanup可用 - 请注册Unloaded event并从那里拨打Messenger.Unregister(this)

0

消息应在解决特定问题时使用。如果你在任何地方使用它,你的应用程序变得难以维护,并且以后会理解代码