我用 mvvmlight 构建了一个项目。使用 Messenger 在 VM 或 VM 和 View 之间发送消息。现在,我想知道何时何地注销Messenger。你能帮我吗?
编辑:
这是我的场景:
有一个 MainWindow 和一个 ChildWindow,ChildWindow(包括一个 ContentControl 由两个不同的 UserControl 之一组成),通过 ChildWindow 中的 SwitchButton 更改 ContenControl。每个窗口或用户控件对应一个 ViewModel。
MainViewModel
发送消息MainWindow
以打开ChildWindow
;MainWindow
打开ChildWindow
(先用UserControlView1
,不要用UserControlView2
),发信息UserControl1ViewModel
做某事;- 如果用户单击取消按钮,则
ChildWindowViewModel
发送消息ChildWindow
以关闭; - 如果
ChildWindowViewModel
发生火灾UnloadedCommand
,ChildWindow
则向每个人发送一条消息以UserControlViewmodel
清理某些东西。
注册和注销messenger的操作放在View或ViewModel的构造函数和析构函数中,还是放在LoadedCommand和UnloadedCommand的委托方法中?View 的 Loaded 和 Unloaded 的命令绑定到 LoadedCommand 和 UnloadedCommand。