Xamlで子ビューを定義する親ビューがあります。子ビューにはDependencyProperty、親ビューのViewModelにバインドされたがあります。ただし、その値は子ビューのViewModelでも必要です。
<custom:Parent>
<custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>
ChildIdコントロールの依存関係プロパティとして実装されますChildView。ChildViewModel必要な場合、ParentFooIdそれを取得するための適切なMVVMの方法は何ですか?
のをにキャストしてDataContext、のハンドラに値を設定したくありません。それは私にはあまりMVVMっぽくないようです。ChildViewChildViewModelOnChildIdChangedChildView
私が考えたもう1つの方法はChildViewModel、値を使用して新しいものを作成し、それをイベント内(内)として設定することDataContextでしOnParentFooIdChangedたParentViewModel。しかし、ViewModelsはビューを認識しないはずであるため(したがって、sについて何も知らないため)、それも完全には正しくないようですDataContext。
明らかな何かが欠けているようです...