WPF MVVM和具有依赖属性的嵌套视图
我有一个父视图,它定义了Xaml中的子视图。 子视图具有绑定到父视图的ViewModel的DependencyProperty
。 但是,该视图的ViewModel也需要该值。
<custom:Parent>
<custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>
ChildId
作为ChildView
控件的依赖项属性实现。 如果ChildViewModel
需要ParentFooId
,那么获得它的适当的MVVM方法是什么?
我不想给投DataContext
中的ChildView
成ChildViewModel
和设定值在OnChildIdChanged
中的处理程序ChildView
。 这对我来说似乎不是MVVM。
我想到的另一种选择是创建一个带有该值的新ChildViewModel
,并将其设置为OnParentFooIdChanged
事件中的DataContext
(在ParentViewModel
); 但是这看起来不太正确,因为ViewModel应该对视图不知情(因此对DataContext
没有任何了解)。
好像我错过了一些明显的东西......
如果我正确理解问题,则只需在父视图模型内创建子视图模型,并传递并保留对父视图模型的引用。 这样,您可以从子视图模型引用父视图模型的任何属性,并绑定到子视图中的任一属性。
如果你只是试图从依赖属性传递数据到你的视图模型,我会使用PropertyChangedCallback事件。 添加一个将更改后的数据发送到View Model的处理程序。 我可能会误解你的意图。
链接地址: http://www.djcxy.com/p/56213.html