WPF MVVM和具有依赖属性的嵌套视图

我有一个父视图,它定义了Xaml中的子视图。 子视图具有绑定到父视图的ViewModel的DependencyProperty 。 但是,该视图的ViewModel也需要该值。

<custom:Parent>
  <custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>

ChildId作为ChildView控件的依赖项属性实现。 如果ChildViewModel需要ParentFooId ,那么获得它的适当的MVVM方法是什么?

我不想给投DataContext中的ChildViewChildViewModel和设定值在OnChildIdChanged中的处理程序ChildView 。 这对我来说似乎不是MVVM。

我想到的另一种选择是创建一个带有该值的新ChildViewModel ,并将其设置为OnParentFooIdChanged事件中的DataContext (在ParentViewModel ); 但是这看起来不太正确,因为ViewModel应该对视图不知情(因此对DataContext没有任何了解)。

好像我错过了一些明显的东西......


如果我正确理解问题,则只需在父视图模型内创建子视图模型,并传递并保留对父视图模型的引用。 这样,您可以从子视图模型引用父视图模型的任何属性,并绑定到子视图中的任一属性。


如果你只是试图从依赖属性传递数据到你的视图模型,我会使用PropertyChangedCallback事件。 添加一个将更改后的数据发送到View Model的处理程序。 我可能会误解你的意图。

链接地址: http://www.djcxy.com/p/56213.html

上一篇: WPF MVVM and nested Views with dependency properties

下一篇: Bind TextBox to large string in WPF using MVVM