私は WPF MVVM Light アプリケーションを開発しています。いくつかのメッセージ ボックス/ダイアログ ボックスを表示したい、またはビュー モデルがそのビューと通信したり、それぞれのビューでイベントを発生させたりする他のシナリオがあります。
どうすればそれを達成できますか?
私は WPF MVVM Light アプリケーションを開発しています。いくつかのメッセージ ボックス/ダイアログ ボックスを表示したい、またはビュー モデルがそのビューと通信したり、それぞれのビューでイベントを発生させたりする他のシナリオがあります。
どうすればそれを達成できますか?
MVVMLightのMessengerクラスを参照してください。MVVMライトをダウンロードする場合、デフォルトでサンプルが含まれているはずです。これはMessenger.Default.Send(new YourMessageClass())のようなもので、ビュー側でリスナーを登録できます。
ポップアップを表示する責任は、ViewModel の責任ではなく、「それを処理するサービス」であるべきです。
「ポップアップウィンドウ」が「ファイルを開くダイアログ」、「ファイルを保存するダイアログ」、メッセージボックス「OK/キャンセル」または「はい/いいえ」などのようなモーダルのようなウィンドウである場合、「サービス」は正しい選択。その理由は、単体テストのためにサービスを偽装/モックできるからです。
また、必要に応じて、このサービスのさまざまな実装を行うことができます。たとえば、デバッグ (r、ロールのタイプが管理者または開発者の場合) では、リリースまたは通常のユーザーよりも「詳細な」情報が得られます。
さて、「ViewModel が View とどのように通信するか」については、あなたが何を意味するのかわかりません。ViewModel にプロパティを追加し、ビューをそのプロパティにバインドするだけです。