MVVM Light Messenger 不起作用
ViewModelA:
在其构造函数内部(断点击中了下面的行):
Messenger.Default.Register<int>(this, "token", OnHitIt);
ViewModelB:
断点确实击中了这一行:
Messenger.Default.Send(hitItId, "token")
但由于某种原因断点从未击中 OnHitIt 方法,可能是什么原因......
ViewModelA:
inside its constructor (breakpoint hits the foll. line):
Messenger.Default.Register<int>(this, "token", OnHitIt);
ViewModelB:
breakpoint does hit this line:
Messenger.Default.Send(hitItId, "token")
But for some reason breakpoint never hits OnHitIt method, what could be the reason...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试使用
On ViewModelA:
OnHitIt 方法将是 -
On ViewModelB:
Try using
On ViewModelA:
And the OnHitIt method would be-
On ViewModelB:
原因之一是 ViewModelA 不再被任何东西引用,但更可能的是令牌查找是通过引用而不是通过值进行的。换句话说,寄存器中的“令牌”与发送中的“令牌”不同。
One reason would be that ViewModelA is no longer referenced by anything, but more likely it's that token look-up is is by reference and not by value. In other words "token" in the Register is not the same reference as "token" in the Send.