MVVM Light Messenger无法按预期运行

Dan*_*ore 2 c# wpf mvvm mvvm-light

前段时间我问了一个问题:使用MVVM Light的Messenger在View Model之间传递值

我今天去测试答案,但似乎没有起作用.我的实现如下:

MessengerInstance.Send(SelectedDocument, Model.StaticEnums.Tokens.SettingstoMain);
Run Code Online (Sandbox Code Playgroud)

和:

MessengerInstance.Register<XDocument>(this, Model.StaticEnums.Tokens.SettingstoMain, settings => CopySettings(settings));
Run Code Online (Sandbox Code Playgroud)

我的问题是,这种实现不起作用.相反,MessengerInstance.Send和MessengerInstance.Register的参数似乎与答案中的实现明显不同.

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

小智 7

在过去的几个月里,我没有使用过MVVM灯.但我总是这样发送和注册消息(见代码).也许新版本有更好的方法.但我不认为.

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

GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<string>("abc");
Run Code Online (Sandbox Code Playgroud)

确保在发送之前首先注册该消息.

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