MVVMパターンを実装するWPFウィンドウがあります。ウィンドウには、ユーザーが選択することになっている使用可能なマイクのリストが表示されます。選択したマイクはリポジトリに保存されます。これはすべて正常に機能しますが、ここに問題があります。新しいマイクを接続するとメインウィンドウが表示され、「新しいデバイスが接続されました。選択しますか?」などのメッセージが表示されます。このメッセージをクリックすると、選択用のウィンドウがポップアップし、新しいデバイスがすでに選択されているはずです。ただし、xamlの背後にコードがなく、UIを真のMVVMパターンとして維持しようとしています。これが私が考えたいくつかのオプションですが、これを行うための「正しい」方法があるかどうかはわかりません。
- ViewModelに渡される汎用グローバルアクションコントローラーを用意します。その後、ViewModelは次のようなイベントをサブスクライブできます。
SelectionChangedEvent
- これに伴う問題は、ウィンドウ(したがってビューモデル)がまだ開かれていない可能性があるため、メッセージが失われることです。
- 上記のオプションを使用しますが、アクションコントローラが常に最初にウィンドウをロードするようにします。これにより、ViewModelが使用できないという問題が解決されます。
- 私が考えていない他の解決策はありますか?