MVVM Light Messenger无法如预期般工作

3

前一段时间,我在这里提出了一个问题:使用MVVM Light的Messenger在视图模型之间传递值

今天我去测试答案,但是好像没有起作用。我的实现如下:

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

还有:

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

我的问题是,这个实现方式不起作用。相反,MessengerInstance.Send和MessengerInstance.Register的参数似乎与答案中的实现方式截然不同。

我在这里做错了什么?我的上一个问题的实现方式正确吗?

1个回答

8

我在过去几个月中并没有与MVVM Light工作很多。但是我始终用这种方式发送和注册消息(见代码)。也许在新版本中有更好的方法,但我不认为会有。

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

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

在发送消息之前,请确保首先注册该消息。

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


请确保在发送消息之前首先进行注册。-> 最有用的关键词。非常感谢! - anevil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接