2つの基本的なアプローチ: メッセージ通知とパラメータの受け渡し
まず、メッセージ通知
IsEnableでのViewプロパティの使用
原理はこれです:
1、VMプロパティにバインドUIでIsEnabled
2、UI、登録IsEnableChangeイベントの背後にあるコードは、このイベントでは、検出値がトリガ閉じるに一定の条件を満たすように上に渡す()コマンド
だから、VMは、クローズドV.の目的を達成することができ、自分の財産を管理します
第二に、パラメータが渡されます
渡されたパラメータによって異なります。伝達関数はオブジェクトと送信ビューに分かれています。
伝達関数
方法は:3つのステップが必要です。
ビューモデルのコンストラクタをオーバーライドします
公共ProduceCloud_ViewModel(アクション近い) { この .close = 近いです。 }
ビューViewModelには、新しいオブジェクトには、オブジェクトは、CloseメソッドビューのViewModelに渡されます。
パブリックProduceDsm_View() { のInitializeComponent(); produceCloudViewModel = 新しい ProduceCloud_ViewModel(この.Close)。 この .DataContext = produceCloudViewModel。 }
操作ビューを閉じる必要がありますを実行すると、通話に機能を委譲。
プライベート 無効 Act_OnClick(オブジェクトOBJ) { // 其他操作 この.close.Invoke(); }
Viewオブジェクトの転送
ビューモデルのコンストラクタをオーバーライドします
クラスMyViewModel { /// <まとめ> /// ウィンドウプロパティを追加 /// </要約> プライベートウィンドウのウィンドウ{ GET、SET ;} /// <まとめ> /// パラメータとしてコンストラクタ受信ウィンドウ /// </要約> 公共 MyViewModel(オブジェクト・ウィンドウ) { この .window = (ウィンドウ)、ウィンドウ; } }
新しいViewModelにインスタンスビューオブジェクトを渡します。
パブリックメインウィンドウ() { のInitializeComponent(); この .DataContext = 新しい MyViewModel(この); }
必要な場合には、ウィンドウのCloseメソッドを呼び出すこと。
この .window.Close();