WPF:アンダーMVVMコールのViewModelビューモード

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 
    { 
        ///  <まとめ> 
        /// ウィンドウプロパティを追加
         ///  </要約> 
        プライベートウィンドウのウィンドウ{ GETSET ;} 

        ///  <まとめ> 
        /// パラメータとしてコンストラクタ受信ウィンドウ
         ///  </要約> 
        公共 MyViewModel(オブジェクト・ウィンドウ)
        {           
            この .window = (ウィンドウ)、ウィンドウ;            
        } 

    }

新しいViewModelにインスタンスビューオブジェクトを渡します。

パブリックメインウィンドウ()
        { 
            のInitializeComponent(); 
            この .DataContext = 新しい MyViewModel(この); 
        }

必要な場合には、ウィンドウのCloseメソッドを呼び出すこと。

この .window.Close();

 

おすすめ

転載: www.cnblogs.com/jasonlai2016/p/12302265.html