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