私はWPFでデータバインドされた階層メニューを持っています。すべての項目が表示されますが、コマンドは子を持つ項目ではなく、メニューのリーフに対してのみ起動します。私は子メニューを展開することによってコマンドがオーバーライドされていると推測しています... 子を持つメニュー項目に対してもコマンドを実行するにはどうすればよいですか?私が今持っている何WPF - 子を持つメニューアイテムにコマンドを与えるにはどうすればいいですか?
は、私がquestion with a similar nameを見つけましたが、状況は異なっており、それがとにかく良い答えを持っていない
<UserControl ...>
<WrapPanel>
<Menu>
<Menu.Resources>
<Style x:Key="MenuItemStyle" TargetType="MenuItem" d:DataContext="{d:DesignInstance local:TreeItem}">
<Setter Property="Command" Value="{Binding DataContext.AddColumnCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"/>
<Setter Property="CommandParameter" Value="{Binding}"/>
</Style>
</Menu.Resources>
<MenuItem Header="Add ▼" ItemsSource="{Binding AvailableFields}">
<MenuItem.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:TreeItem}" ItemsSource="{Binding NestedItems}" ItemContainerStyle="{StaticResource MenuItemStyle}">
<ContentPresenter Content="{Binding Annotation}"/>
</HierarchicalDataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
</Menu>
</WrapPanel>
</UserControl>
です。