2011-07-18 15 views
3

かなりMVVMを説明するビデオを見ていました。しかし、1つのウィンドウアプリケーションモデルしか表示されないようです。マルチウィンドウモデルを扱う場合はどうすればいいですか?マルチウィンドウでのWPF + MVVMの処理

私が見ているものから、app.xamlは(DataContextとして)MainWindowにリンクされています。 app.xamlは開始点であるため、MainWindowを実行します。 MainWindowはViewModelsをバインドしているので、ViewModelsを処理できます。しかし、これは1つのウィンドウだけです。2つ目のウィンドウを導入したい場合はどうなりますか?どのように進めますか?

ありがとうございました。

答えて

1

サービスを介して、メインウィンドウのビューモデルからビュー(Window)タイプをインスタンス化することができます。サービス内でこのウィンドウのDataContextをプログラムで設定し、適切なビューを見つけてmyWindow.Show()またはmyWindow.ShowDialog()を使用してウィンドウを表示することができます。 Caliburn.MicroのようなMVVMフレームワークには、ビューの場所を管理し、ビュー/ビューモデルのバインドを行うためのWindowManagerがあります。

+0

特定のフレームワークからWindowManagerについて説明します。しかし、代わりにWindowsのリストを含む静的クラスでこれを処理できると思いますか? – Rushino

+0

はい、もちろんですが、単体テストでダイアログ結果のようなものを模倣したいので、ビューモデルのIWindowManagerなどの抽象化に対して、インスタンスベースにして作業したいと思うでしょう。 – devdigital

+0

Alright。ありがとう! – Rushino

関連する問題