MVVM Light Messenger无法按预期运行

时间:2013-08-14 20:08:30

标签: c# wpf mvvm mvvm-light

前段时间我问了一个问题:Use MVVM Light's Messenger to Pass Values Between View Model

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

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

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

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

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

1 个答案:

答案 0 :(得分:7)

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

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

GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<string>("abc");

确保首先在发送邮件之前注册邮件。

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