因此可以在构建视图模型类之前发送消息,并且在构造它时我能够获得消息吗?
答案 0 :(得分:0)
应在设置根视觉之前创建所有视图模型。
设置断点
首先点击MainViewModel()。
点击Sub3ViewModel(),监听器注册。
RootVisual已设置。
答案 1 :(得分:0)
我自己没有尝试过,但是this guy似乎对这个常见问题有了很好的解决方案。您可以通过查看实现它的单个cs文件的WP7Contrib.Messaging文件夹来查看它的源代码(无需下载整个contrib项目)here。整个项目适用于移动应用程序(特别是WP7),但这种自定义Messenger实现实际上是独立的。
基本上,他创建了一个特殊的Messenger实现,每当有新的注册来监听它时,它会“重新发送”给定类型签名的最后一条消息。这样,第一个VM可以发送它的消息,第二个VM将被创建(可能是你的IoC容器或其他)并注册监听并立即获得它存在之前发送的消息。
当然,这可能会对种族条件产生一些影响。它依赖于在给定的接收者有机会接收到给定签名之前不发送任何其他消息。但实际上,我认为这不是一个问题。特别是如果您充分利用消息的目标和发件人部分。