我试图让RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)
正常工作,但无法让它工作。
我没有在任何现实世界的场景中实现它,只是为了学习它。如果我以通常的方式提高广播,那么它才有效
Messenger.Default.Send<PropertyUpdateeMessage>(new PropertyUpdateeMessage("test"));
所以我想知道我错过了什么才能使用RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)
提前致谢。
此致 拉基
答案 0 :(得分:15)
这也让我有点想弄清楚。基本上你必须协调你正在注册的消息和你发送的消息,但是没有很多关于它的文档。
我有一个完整的工作样本here,但这里的信息简而言之:
首先,注册PropertyChangedMessage,指定总线上的类型
Messenger.Default.Register<PropertyChangedMessage<ObjectICareAbout>>(
this,
(action) => DispatcherHelper.CheckBeginInvokeOnUI(
() => DoWorkOnObject(action.NewValue)
)
);
然后在主VM的属性更改时发送消息
RaisePropertyChanged(SelectedItemPropertyName, oldValue, value, true);
在发送消息并注册听取消息时,您可以使用一些消歧选项,但这就是基础知识的工作原理。