【发布时间】:2016-12-06 09:32:56
【问题描述】:
我在 WPF 中有一个数据绑定分层菜单。显示所有项目,但命令仅针对菜单的叶子触发,而不是具有子项的项。我猜该命令被扩展子菜单覆盖... 即使对于带有子项的菜单项,我如何才能执行命令?
我现在拥有的是
<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>
我找到了question with a similar name,但情况不同,反正也没有好的答案。
【问题讨论】: