bas*_*bas 2 c# wpf contextmenu relativesource
我在 TreeView 中有一个上下文菜单
UserControl (DataContext=ViewModel)
|
|
---- TreeView (ItemSource=MyItems)
|
|
----- Items (ItemSource=MyChildrenItems)
|
|
----- ContextMenu
Run Code Online (Sandbox Code Playgroud)
我想将 ContextMenuItem 的命令绑定到 ViewModel 中的 RelayCommand,我尝试了各种relativesource 绑定,但似乎没有任何效果...
我应该如何配置RelativeSource 绑定?
<ContextMenu>
<MenuItem
Header="Bla"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=TreeView}, Path=DataContext.MyRelayCommand}" />
Run Code Online (Sandbox Code Playgroud)
我收到类似的绑定错误
无法找到引用“RelativeSource FindAncestor,AncestorType='System.Windows.Controls.TreeView',AncestorLevel='1”的绑定源。BindingExpression:Path=DataContext.ExcludeSeasonCommand; 数据项=空;目标元素是“MenuItem”(名称=“”);目标属性是“Command”(类型“ICommand”)
最后,经过很多很多谷歌搜索我找到了解决方案
<MenuItem
Header="Exclude season"
Command="{Binding DataContext.MyRelayCommand, Source={x:Reference _myTreeView}}" />
Run Code Online (Sandbox Code Playgroud)
因为 HierarchicalDataTemplate 没有出现在可视化树中,所以没有“相对”源......
我希望这可以帮助其他正在拔头发的人......
| 归档时间: |
|
| 查看次数: |
1421 次 |
| 最近记录: |