Ich verwende Version 3.0.3.19 des MVVM Light Toolkit.
Von http://blog.galasoft.ch/archive/2010/03/16/whatrsquos-new-in-mvvm-light-v3.aspx :
Nachrichten können jetzt mit einem Token über den Messenger versendet werden.
Um eine Nachricht mit Token zu senden, verwenden Sie die Überladung der Methode Send(TMessage message, object token).
Um eine Nachricht mit Token zu empfangen, verwenden Sie die Methoden Register(object recipient, object token, Action) oder Register(ob object token, bool receiveDerivedMessagesToo, Action action)
Der Token kann ein einfacher Wert (int, string, etc ) o einer Klasse. Die Nachricht wird nicht an Empfänger zugestellt, die sich mit einem anderen Token oder ohne Token registriert haben.
Gemäß der obigen Dokumentation habe ich folgendes in ViewModel A versucht:
Messenger.Default.Send(new NotificationMessage("message"), "token");
Zusammen mit dem Folgenden in ViewModel B:
Messenger.Default.Register<NotificationMessage>(this, "token", (msg) => Console.WriteLine(msg.Notification));
Der Rückruf wird jedoch nie ausgeführt. Was mache ich falsch?