4

我用 mvvmlight 构建了一个项目。使用 Messenger 在 VM 或 VM 和 View 之间发送消息。现在,我想知道何时何地注销Messenger。你能帮我吗?

编辑:

这是我的场景:

有一个 MainWindow 和一个 ChildWindow,ChildWindow(包括一个 ContentControl 由两个不同的 UserControl 之一组成),通过 ChildWindow 中的 SwitchButton 更改 ContenControl。每个窗口或用户控件对应一个 ViewModel。

在此处输入图像描述

  1. MainViewModel发送消息MainWindow以打开ChildWindow
  2. MainWindow打开ChildWindow(先用UserControlView1,不要用UserControlView2),发信息UserControl1ViewModel做某事;
  3. 如果用户单击取消按钮,则ChildWindowViewModel发送消息ChildWindow以关闭;
  4. 如果ChildWindowViewModel发生火灾UnloadedCommandChildWindow则向每个人发送一条消息以UserControlViewmodel清理某些东西。

注册和注销messenger的操作放在View或ViewModel的构造函数和析构函数中,还是放在LoadedCommand和UnloadedCommand的委托方法中?View 的 Loaded 和 Unloaded 的命令绑定到 LoadedCommand 和 UnloadedCommand。

4

0 回答 0