【问题标题】:MVVM Light Messenger Not Functioning As ExpectedMVVM Light Messenger 未按预期运行
【发布时间】:2013-08-14 20:08:29
【问题描述】:

不久前我问了一个在这里找到的问题: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 的参数似乎都与答案中的实现截然不同。

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

【问题讨论】:

    标签: c# wpf mvvm mvvm-light


    【解决方案1】:

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

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

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

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

    【讨论】:

    • "确保在发送之前先注册消息。" -> 最有用的关键字。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2016-02-07
    相关资源
    最近更新 更多