MVVM Light Messenger未按预期工作

本文关键字:工作 Light Messenger MVVM | 更新日期: 2023-09-27 18:27:38

不久前,我问了一个问题:使用MVVM Light';s在视图模型之间传递值的信使

我今天去测试了答案,结果似乎不起作用。我的实现如下:

MessengerInstance.Send(SelectedDocument, Model.StaticEnums.Tokens.SettingstoMain);

和:

MessengerInstance.Register<XDocument>(this, Model.StaticEnums.Tokens.SettingstoMain, settings => CopySettings(settings));

我的问题是,这个实现不起作用。相反,MessengerInstance.Send和MessengerInstance.Register的论点似乎与答案中的实现有着惊人的不同。

我在这里做错了什么?我上一个问题的答案中的实施是否正确?

MVVM Light Messenger未按预期工作

在过去的几个月里,我没有大量使用MVVM light。但我总是以这种方式发送和注册消息(请参阅代码)。也许新版本中有更好的方法。但我不这么认为。

GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<string>(this, (a) => { MessageBox.Show(a); });
GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<string>("abc");

确保在发送消息之前先注册。

编辑:对于每种消息类型,我都创建了一个自定义消息类。因此,在应用程序中使用消息的代码中更容易找到消息。