WPF MenuItem:如何将SubMenuItem命令绑定到其父菜单项
问题描述:
我想绑定例如“Debug | Any CPU”MenuItem命令对Project Context BuildProjectCommand有自己的BuildConfiguration上下文。 如何正确地做到这一点? 我已经尝试用FindAncestor来完成这一工作,但它不起作用。 例如Command="{Binding Path=DataContext.BuildCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type MenuItem}}}"
WPF MenuItem:如何将SubMenuItem命令绑定到其父菜单项
答
我做了一个快速原型和下面结合应该工作,你希望:
<DataTemplate DataType="{x:Type commmon:BuildConfiguration}">
<TextBlock x:Name="ConfigBlock">
<Run Text="{Binding Name, Mode=OneWay}"/>
<TextBlock.InputBindings>
<MouseBinding MouseAction="LeftClick"
Command="{Binding DataContext.BuildCommand,
RelativeSource={RelativeSource AncestorLevel=2,
AncestorType={x:Type MenuItem}}}">
</MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
+0
谢谢! AncestorLevel是黑客:P – killika
绑定弹出菜单可以的,因为路变得棘手,他们与可视树“断开连接”,它们不会以您期望的方式继承“DataContext”。有一些[技巧](https://stackoverflow.com/questions/662164/wpf-context-menu-doesnt-bind-to-right-databound-item),你可以使用。 –