WPF MenuItem:如何将 SubMenuItem 命令绑定到其父 MenuItem
WPF MenuItem: How to bind a SubMenuItem command to to its Parent MenuItem
我想绑定例如“Debug|Any CPU”MenuItem 命令,它有自己的 BuildConfiguration Context 到 Project Context BuildProjectCommand。
如何正确操作?
我已经尝试使用 FindAncestor 完成此操作,但它不起作用。
例如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>
我想绑定例如“Debug|Any CPU”MenuItem 命令,它有自己的 BuildConfiguration Context 到 Project Context BuildProjectCommand。 如何正确操作?
我已经尝试使用 FindAncestor 完成此操作,但它不起作用。
例如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>