2009-08-17 8 views
1

にRelayCommandの取り扱いを指示するために、私はある程度MVVMとさえWPFに非常に新しいですので、私と一緒にクマ...適切な方法ビューモデル親

私はMVVMアプリケーションを持っていますメインウィンドウがあり、アプリケーションの状態に応じて異なるタイプのビューモデルインスタンスが含まれています。これらのビューモデルの1つは、アプリケーションを再起動し、別のユーザーとしてデータベースにログインするためのボタンを含むオプション画面です。 RelayCommandを使用して、親(メインウィンドウ)でこのコマンドを処理し、Window.Close()メソッド呼び出しを発行するにはどうすればよいですか?

答えて

1

親ビューモデルでRelayCommandを定義します。関連付けられたハンドラも親ビューモデルで定義されます。

子ビューモジュールを作成するときに、Paremtn Viewモデルオブジェクトをコンストラクターの子ビューモデル(Dependency Injection Pattern)に渡します。

これで、ビューまたはビューモデルのコマンドバインディングを設定できます。

他の代替手段は、実際にはリレーコマンドの代わりにルーティングされたコマンドを使用し、親ビューモデルにバブルアップさせることです。

+0

これは実際には完璧な意味合いがあり、私は前にそれを実現していない愚か者のように感じます。 – Firoso