我有一个在 Xaml 中定义子视图的父视图。子视图有一个DependencyProperty
绑定到父视图的 ViewModel。但是,子视图的 ViewModel 也需要该值。
<custom:Parent>
<custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>
ChildId
被实现为ChildView
控件的依赖属性。如果ChildViewModel
需要ParentFooId
,获取它的正确 MVVM 方式是什么?
我不想将DataContext
的ChildView
转换为 a并在 . 的处理程序中ChildViewModel
设置值。对我来说,这似乎不是很 MVVM-ish。OnChildIdChanged
ChildView
我想到的另一种选择是ChildViewModel
使用该值创建一个新的并将其设置为DataContext
事件OnParentFooIdChanged
中(在ParentViewModel
)中;但这似乎也不完全正确,因为 ViewModel 应该对 View 不知情(因此对 s 一无所知DataContext
)。
好像我错过了一些明显的东西......