2012-02-28 9 views
2

現在のデータコンテキストはSomeViewModelですが、メインウィンドウのビューモデルのプロパティにバインドする必要があります。私は、バインディングにSourceまたはRelativeSourceを指定する必要があると推測しますが、それをどのように管理するかは十分にはわかりません。 MainWindowViewModelは、メインウィンドウのデータコンテキストです(パブリックメンバでもあります)。すべてのガイダンスは大歓迎です!データコンテキストでないときにウィンドウにバインドするモデルのプロパティ

+0

ここでMVVMデザインパターンを破っていると思います。あなたは "SomeViewModel"にそのプロパティを持たせ、両方のビューモデルの同じ場所からそのプロパティを取得する必要があります。または、ナビゲートするときに値をビューにパラメータとして渡します。 – Robaticus

+0

@Robaticus私はSomeViewModelにプロパティをパイプすることを考えました - しかし、依存プロパティを使用していません - したがって、WindowViewModelのプロパティが変更され、明示的ではない(WindowViewModelでは簡単です)、SomeViewModelでRaisePropertyChangedを管理する必要があります。 – Ricibob

+1

私はあなたを得ました。現実の世界は、デザインパターンの完璧な実装にしばしば干渉することも理解しています。 :) – Robaticus

答えて

4

は、あなたのメインウィンドウはウィンドウ型のインスタンスであり、現在の「オブジェクト」は、サブユーザーコントロールである場合、それは動作するはずです

{Binding Path=DataContext.YourMainWindowViewModelPropertyName, 
     RelativeSource={RelativeSource AncestorType={x:Type Window}}} 

のようなものを試してみてください。

+0

パーフェクト - ありがとう:-) – Ricibob

関連する問題