首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF MVVM和具有依赖属性的嵌套视图

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

Stack Overflow用户
提问于 2009-09-09 14:52:45
回答 2查看 1.6K关注 0票数 2

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

代码语言:javascript
运行
复制
<custom:Parent>
  <custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>

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

我不想将ChildViewDataContext转换为ChildViewModel,然后在ChildViewOnChildIdChanged处理程序中设置值。对我来说,这似乎不是很适合MVVM。

我想到的另一种方法是创建一个具有该值的新ChildViewModel,并将其设置为OnParentFooIdChanged事件中的DataContext (在ParentViewModel中);但这似乎也不太正确,因为ViewModels应该对视图一无所知(因此对DataContext一无所知)。

我似乎遗漏了一些明显的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-06 07:14:32

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

票数 3
EN

Stack Overflow用户

发布于 2009-11-05 22:19:07

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1400226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档