是否可以通过MVVM Light Messenger发送令牌?

时间:2011-01-05 00:18:40

标签: wpf mvvm mvvm-light

我一直在重构一些最初在MVVM Foundation中使用Messenger的代码,现在使用MVVM Light Toolit中的Messenger。我似乎无法找到等效的一件事是你要做的就是发送一个令牌(即令牌作为消息的唯一标识符)消息本身)。

原始代码(MVVM Foundation) - 一个字符串可以完成所有操作

// send code
mvvmFoundationMessenger.NotifyColleagues("QuestionTimedOut");

// register code
mvvmFoundationMessenger.Register(
    "QuestionTimedOut",
    () => UpdateOnQuestionTimedOut());

新代码(MVVM Light) - 有比这更优雅的解决方案吗?

// send code
mvvmLightMessenger.Send("QuestionTimedOut", "QuestionTimedOut");

// register code
mvvmLightMessenger.Register<string>(
    this,
    "QuestionTimedOut",
    token => UpdateOnQuestionTimedOut());

我意识到我可以明确地新建一个NotificationMessage,但这会增加更多的代码。

2 个答案:

答案 0 :(得分:5)

好点。我把它放在MVVM Light VNext的积压上。

答案 1 :(得分:0)

您可以从MvvmLight的Messenger派生并添加自己的便捷方法,也可以在扩展程序中添加Messenger Extension Methods