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