UserControlUserControl1とUserControl1内のボタンがあります。そして、ボタンのICommandプロパティを持つUserControl1ViewModelがあります。このコマンドを使用して、VMの外部(他のVMまたはメインウィンドウのVMから)のメソッドを呼び出す必要があります。このためのベストプラクティスは何ですか?
3 に答える
You're most likely looking to implement the Mediator pattern to handle the communication between two viewmodels.
Another SO question along the same vein is: mvvm-view-model-view-model-communications
Laurent Bugnion http://www.galasoft.ch/mvvm/getstarted/による MVVM lite を調べることをお勧めします。
これは、mvvm の概念を適用するのに役立つ軽量のツールキットです。その中で、すべてのビューモデルは ViewModelLocator クラスの静的メンバーです。したがって、たとえば、コマンドで次のようなことができます。
ViewModelLocator.MainViewModel.MainContent = NewContent;
これは mvvm lite がなくても完全に実行できますが、mvvm lite を使用すると、学習曲線がスピードアップし、モジュール性が強化されます。
ViewModel 間の仲介に Controller を使用することを検討します。WPF Application Framework (WAF)は、これがどのように機能するかを示しています。