请引用How can I tell my DataTemplate to bind to a property in the PARENT ViewModel?
我有类似的问题......但这个解决方案对我不起作用。我有一个 MainViewModel,它有另一个 View 模型的可观察集合,比如 View1/ViewModel1。这个 View 有一个树控件,我需要树的上下文菜单。我的主视图有一个菜单。那些主菜单和上下文菜单是相连的。那么如何将上下文菜单命令绑定(bind)到主视图模型的属性呢?
最佳答案
基本上,您需要使用 RelativeSource
捆绑。标准方法是查找特定类型控件的祖先(或父级):
{Binding DataContext.PropertyName, RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type YourViewsNamespace:YourParentView}}}
假设您的父 View 有一个 View 模型设置为其
DataContext
,此绑定(bind)将访问它... DataContext
是 DataContext
的观点,例如。设置为 DataContext
的 View 模型.所以,PropertyName
property 是该 View 模型的公共(public)属性。关于你之前被问过很多次的部分问题,请看以下链接(或直接在网上搜索):
Context Menus in WPF
Binding ContextMenu to its logical Parent
关于wpf - 与父 ViewModel 绑定(bind)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717241/