この例を見てみましょう。AViewModelにバインドされているAViewがあります。AViewは、AViewModelでACommandを実行し、それにパラメーターを渡す必要があります。問題は、ViewAにコマンドに渡すのに十分な情報がないため、ユーザーから情報を収集するために別のBViewを表示する必要があることです。VIewBが閉じられた後、ViewAはAViewModelでACommandを呼び出し、パラメーターを渡します。
このシナリオを処理する方法は?AViewがBViewと直接通信できるようにする必要がありますか、それともそうするとルールに違反しますか?
私が考えているもう1つの方法は、パラメーターなしでAViewModelでACommandを呼び出し、VIewModelAから、タスクを完了するために情報が必要であるというメッセージを送信することです。この情報は、BViewModelにバインドされているBViewを開く要求を送信するのではなく、MainPageViewModelによってキャプチャされます。BViewが閉じられると、BVIewModelは追加情報を含むメッセージを送信し、ViewModelAはこのタイプのメッセージをサブスクライブしているため、メッセージを受信してタスクを完了します。2つのテキストボックスに値を入力するだけではかなり複雑ですよね?:)