ViewModelA:
在其构造函数中(断点点击foll。行):
Messenger.Default.Register<int>(this, "token", OnHitIt);
ViewModelB:
断点确实击中了这一行:
Messenger.Default.Send(hitItId, "token")
但由于某种原因,断点永远不会击中OnHitIt方法,原因可能是......
答案 0 :(得分:1)
尝试使用
在ViewModelA上:
Messenger.Default.Register<NotificationMessage<int>>(this, OnHitIt);
OnHitIt方法将是 -
private void OnHitIt(NotificationMessage<int> m)
{
if (m.Notification == "token")
{
// code goes here
// m.Content will get the int passed in
}
}
在ViewModelB上:
Messenger.Default.Send(new NotificationMessage<int>(hitItId, "token"));
答案 1 :(得分:0)
一个原因是ViewModelA不再被任何东西引用,但更可能的是,令牌查找是通过引用而不是通过值。换句话说,寄存器中的“令牌”与发送中的“令牌”不同。