2010-07-05 49 views
4

我试图让RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)工作,但无法使其工作。RaisePropertyChanged <T>(字符串propertyName,T oldValue,T newValue,布尔广播)

我没有在任何现实世界中实现它,只是为了学习它。如果我提出广播通常仅仅然后它 Messenger.Default.Send<PropertyUpdateeMessage>(new PropertyUpdateeMessage("test"));

所以我想知道我失去了什么,提前使用RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)

感谢。

问候 Raki酒

回答

15

这花了我一点弄清楚了。基本上你必须协调你正在注册的消息和你发送的消息,但是没有很多关于它的文档。

我有一个完整的工作示例here,但这里的果壳中的信息:

首先,报名参加PropertyChangedMessage指定回事总线上的类型

Messenger.Default.Register<PropertyChangedMessage<ObjectICareAbout>>(
    this, 
    (action) => DispatcherHelper.CheckBeginInvokeOnUI(
       () => DoWorkOnObject(action.NewValue) 
       ) 
); 

然后发送出去的邮件当主虚拟机的属性发生变化时

RaisePropertyChanged(SelectedItemPropertyName, oldValue, value, true); 

发送消息时可以使用一些消歧选项并注册听到它,但这是基本的工作原理。

+0

谢谢克里斯。这帮了我很多:) – user383663 2010-07-06 01:35:00

+2

太棒了!如果您不介意将此答案标记为已接受,那将确实有助于我的声誉。 – 2010-07-06 02:58:45

相关问题