C# WPF菜单项:如何将子菜单项命令绑定到其父菜单项
我想将具有自己构建配置上下文的例如“Debug | Any CPU”MenuItem命令绑定到项目上下文BuildProjectCommand。 如何正确地做 我已经试着用FindAncestor来完成这项工作,但它不起作用。 e、 g.C# WPF菜单项:如何将子菜单项命令绑定到其父菜单项,c#,wpf,menuitem,C#,Wpf,Menuitem,我想将具有自己构建配置上下文的例如“Debug | Any CPU”MenuItem命令绑定到项目上下文BuildProjectCommand。 如何正确地做 我已经试着用FindAncestor来完成这项工作,但它不起作用。 e、 g.Command=“{Binding Path=DataContext.BuildCommand,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type MenuItem}}}}” 请参阅图
Command=“{Binding Path=DataContext.BuildCommand,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type MenuItem}}}}”
请参阅图片以了解更多信息:
我已经制作了一个快速原型,下面的绑定应该可以像您期望的那样工作:
<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>
绑定弹出菜单可能会变得棘手,因为它们与可视树“断开”的方式,它们不会以您期望的方式继承DataContext
。不过有一些你可以用。谢谢!这一级别就是黑客:P