4

mvvmlight でプロジェクトをビルドします。Messenger を使用して、VM または VM と View の間でメッセージを送信します。さて、いつ、どこでメッセンジャーの登録を解除するのだろうか。私を助けてもらえますか?

編集:

これは私のシーンです:

MainWindow と ChildWindow、ChildWindow (2 つの異なる UserControl のいずれかで構成される ContentControl を含む) があり、ChildWindow の SwitchButton を介して ContenControl を変更します。ViewModel に対応するすべてのウィンドウまたは UserControl。

ここに画像の説明を入力

  1. MainViewModelにメッセージを送信して;MainWindowを開きます。ChildWindow
  2. MainWindowを開きChildWindow(最初に を使用し、 を使用UserControlView1しないでくださいUserControlView2)、メッセージを送信しUserControl1ViewModelて何かを行います。
  3. ユーザーが CancelButton をクリックすると、閉じるChildWindowViewModelメッセージが送信さChildWindowれます。
  4. ChildWindowViewModelfireの場合UnloadedCommandChildWindowそれぞれにメッセージを送信しUserControlViewmodelて何かをクリーンアップします。

メッセンジャーの登録と登録解除の操作は、View または ViewModel のコンストラクタとデストラクタに入れられるか、LoadedCommand と UnloadedCommand のデリゲート メソッドに入れられますか? View の Loaded および Unloaded の LoadedCommand および UnloadedCommand へのコマンド バインド。

4

0 に答える 0