2016-05-16 7 views
1

MVVM-Lightフレームワーク(C#)を使用してビューベースのアプリケーションを開発しています。基本的には、コンテンツコントローラーで開いている単一のウィンドウがあり、ビューモデルによってコンテンツコントローラー内のビューが決まります。ビューベースのWPFアプリケーションでViewModelからビューを変更する

ビューを変更する個々のビューモデルからコマンドを実行したいとします。たとえば、ユーザーが「送信」を押すと、アプリケーションはメインビューに戻ります。

MainWindowViewModelの変数CurrentViewModelにリンクするために、各ビューモデルにタイプWindowのParentWindow引数が必要なのは唯一のことです。これを行うより良い方法はありますか?

+1

'CurrentViewModel'は、メインウィンドウが待機するというイベントを持つことができます。全ての 'CurrentViewModel'型が既に基底から継承されていれば簡単でしょう – Jonesopolis

+0

私はもっと良い方法はあなたのViewModelの中にビューの参照を置くことさえ考えないことだと思います。これは、ViewModelのリストでDataTemplateを利用することで実現できます。そして、あなたはおそらく、一つのビューから別のビューへのバインディングやシフトのためにSelectedItemプロパティが必要になるでしょう。 – tgpdyk

+0

@Jonesopolisそれはどういう意味ですか?あなたは少し拡大できますか? – jaysoncopes

答えて

関連する問題