2017-06-04 19 views
-1

親ビューのプロパティ(UIコントロールにバインドする)を子ビューのモデルから変更したいと思います。 提案がありますか?親ビューのプロパティをWPFの子ビューから変更するにはどうすればよいですか?

おかげで、 Gowtham

+0

イベントがうまく動作するか、親ビューに静的アクションメソッドを作成できます。また、実際の技術を知りたい場合は、メッセージバスを作成することもできます。 –

+0

私はそのような場合、次の2つのアプローチのうちの1つを使用します:1)子ビューモデルでイベントを発生させ、親イベントでサブスクリプションを行います。2)望ましいメソッドでインターフェースを作成し、親のVMで実装し、 vmこのインタフェースによって。ネストレベルが1より大きい場合、私は第2のアプローチを好む。 – Maxim

答えて

0

子ビューモデルは、デフォルトでは、親についての知識を持ちません。親を作成するときに、その子に親への参照を挿入することもできます。

public MethodInParent() 
{ 
    var child = new ChildViewModel(this); 
} 

それとも、疎結合な方法で子と親の間でのメッセージやイベントを送信するメッセンジャーやイベントアグリゲータを使用することができます。このコンセプトの詳細については、次のリンクを参照してください:https://blog.magnusmontin.net/2014/02/28/using-the-event-aggregator-pattern-to-communicate-between-view-models/

+0

'ChildViewModel'は親ビューモデル全体を引数として取ってはならないことに注意してください。子ビューモデルは、親のものだけが必要なものだけを知る必要があります。 'ChildViewModel'のコンストラクタは親ビューモデルで実装されたいくつかのインタフェースをとることができます。 – Maxim

関連する問題