我使用mvvmlight构建一个项目。在VM或VM和View之间使用Messenger发送消息。现在,我想知道何时何地取消注册信使。你可以帮助我吗?
编辑:
这是我的场景:
有一个MainWindow和一个ChildWindow,ChildWindow(包含一个由两个不同UserControl之一组成的ContentControl),通过ChildWindow中的SwitchButton更改ContenControl。每个窗口或UserControl对应一个ViewModel。
MainViewModel
向MainWindow
发送消息以打开ChildWindow
; MainWindow
打开ChildWindow
(首先使用UserControlView1
,不要使用UserControlView2
),然后发送消息给UserControl1ViewModel
做某事; ChildWindowViewModel
会向ChildWindow
发送消息以关闭; ChildWindowViewModel
点火UnloadedCommand
,ChildWindow
会向每个UserControlViewmodel
发送消息以清理某些内容。注册和取消注册信使的操作放在构造函数和View或ViewModel的析构函数中,还是放在LoadedCommand和UnloadedCommand的委托方法中? View的Loaded和Unloaded命令绑定到LoadedCommand和UnloadedCommand。