我正在使用 MVVM Light Toolkit 的 3.0.3.19 版本。
来自http://blog.galasoft.ch/archive/2010/03/16/whatrsquos-new-in-mvvm-light-v3.aspx:
现在可以使用令牌通过 Messenger 发送消息。
要发送带有令牌的消息,请使用方法重载 Send(TMessage message, object token)。
要接收带有令牌的消息,请使用方法 Register(object recipient, object token, Action action) 或 Register(object recipient, object token, bool receiveDerivedMessagesToo, Action action)
标记可以是一个简单的值(int、string 等)或一个类的实例。消息不会传递给使用不同令牌或根本没有令牌注册的收件人。
根据上面的文档,我在 ViewModel A 中尝试了以下操作:
Messenger.Default.Send(new NotificationMessage("message"), "token");
连同 ViewModel B 中的以下内容:
Messenger.Default.Register<NotificationMessage>(this, "token", (msg) => Console.WriteLine(msg.Notification));
但是,回调永远不会执行。我究竟做错了什么?