【发布时间】:2009-09-09 14:52:44
【问题描述】:
我有一个在 Xaml 中定义子视图的父视图。子视图有一个绑定到父视图的 ViewModel 的DependencyProperty。但是,子视图的 ViewModel 也需要该值。
<custom:Parent>
<custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>
ChildId 被实现为ChildView 控件的依赖属性。如果ChildViewModel 需要ParentFooId,那么获得它的正确MVVM 方式是什么?
我不想将 ChildView 的 DataContext 转换为 ChildViewModel 并在 ChildView 的 OnChildIdChanged 处理程序中设置值。对我来说,这似乎不太像 MVVM。
我想到的另一种选择是使用该值创建一个新的ChildViewModel,并将其设置为OnParentFooIdChanged事件中的DataContext(在ParentViewModel中);但这似乎也不太正确,因为 ViewModel 应该对 View 视而不见(因此对 DataContexts 一无所知)。
我好像遗漏了一些明显的东西......
【问题讨论】:
标签: c# wpf data-binding mvvm dependency-properties