我试图让 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)
提前致谢。
问候
拉基
最佳答案
这也让我有点想通了。基本上,您必须将您注册的消息与您发送的消息进行协调,但没有很多关于它的文档。
我有一个完整的工作示例 here ,但这里的信息简而言之:
首先,注册 PropertyChangedMessage 指定正在总线上的类型
Messenger.Default.Register<PropertyChangedMessage<ObjectICareAbout>>(
this,
(action) => DispatcherHelper.CheckBeginInvokeOnUI(
() => DoWorkOnObject(action.NewValue)
)
);
然后在主VM的属性更改时将消息发送出去
RaisePropertyChanged(SelectedItemPropertyName, oldValue, value, true);
在发送消息和注册收听消息时,您可以使用一些消歧选项,但这是基本的工作方式。
关于.net - RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179435/