私は大規模なMVVMアプリケーションで作業しています。私はこれにMVVMのライトツールキットを使用しています。アプリケーションは、前後のボタンを備えたWebブラウザのようなものです。メインビューはユーザーコントロールです。メインビューのユーザーコントロールに戻るボタンと進むボタンを配置しました。メインビューには、ユーザーコントロールがあります。ユーザーコントロールは、前後のボタンをクリックすると変更されます。メインのViewModelは現在のユーザーコントロールを追跡し、ボタンのクリックに応じて次のコントロールを読み込みます。MVVM:通信
これらすべてのユーザーコントロールは、最初の手順で選択したIDに応じてロードされます。メインビューは検索画面で、顧客を選択します。次の画面は、アドレス、請求、要求などです。これらの画面はデータを共有しません。しかし、そのデータは同じ顧客のものです。
メインビューに顧客IDを保存することをお勧めしますか?これを行うと、コマンドにバインドされたUserControl_Loadedイベントが必要になります。そこで、アドレスと請求情報を要求します。
または、メインビューではなく各ユーザーコントロールにボタンを移動できます。次のビューを読み込むメッセージで顧客IDを渡します。
どちらが優れていますか?
物事を切り離すには、コマンドを使用するのではなく、MVVM Light 'Messenger'を使用して' CustomerSelected'メッセージ(Idを含むことができる)を公開することを検討してください。あなたの他のコントロールは、このメッセージを購読することができます。 –
これについての私の考えは、ソースと現在のビューに応じて、戻るボタンと進むボタンがメインビューにある場合、ビューモデルにメッセージを送信する必要があります。私はそれを避けたい(現在のビューに応じてメインビューからメッセージを送信する)。だから、私はUser_Control Loadedイベントを考えていました。 – katie77
なぜメッセージを送信したくないのですか? –