Wpf 如何将命令添加到ElementMenuItem?
我正在尝试向ElementMenuItem添加命令,但无法激发该命令Wpf 如何将命令添加到ElementMenuItem?,wpf,xaml,command,Wpf,Xaml,Command,我正在尝试向ElementMenuItem添加命令,但无法激发该命令 <Grid Name="MenuGrid"> <s:ElementMenu Name="MainMenu" ActivationMode="AlwaysActive" ActivationHost="{Binding ElementName=MenuGrid}" ItemsSource="{Bindin
<Grid Name="MenuGrid">
<s:ElementMenu
Name="MainMenu"
ActivationMode="AlwaysActive"
ActivationHost="{Binding ElementName=MenuGrid}"
ItemsSource="{Binding Menu}">
<s:ElementMenu.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Menu}" DataType="{x:Type s:ElementMenuItem}">
<Grid>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<behaviours:EventToCommand Command="{Binding Source={StaticResource Locator}, Path=NavigatorMenu.SimpleCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<Image Source="{Binding ImageUri}"></Image>
<TextBlock Text="{Binding Title}"
VerticalAlignment="Bottom"
HorizontalAlignment="Center">
</TextBlock>
</Grid>
</HierarchicalDataTemplate>
</s:ElementMenu.ItemTemplate>
</s:ElementMenu>
</Grid>
有人知道如何在菜单中添加命令吗?提前谢谢。不知道这些控件是什么,但如果它们是从普通菜单继承的,则应使用
ItemContainerStyle
连接命令:
<s:ElementMenu Name="MainMenu" ActivationMode="AlwaysActive"
ActivationHost="{Binding ElementName=MenuGrid}" ItemsSource="{Binding Menu}">
<s:ElementMenu.ItemContainerStyle>
<Style TargetType="s:ElementMenuItem">
<Setter Property="Command"
Value="{Binding Source={StaticResource Locator}, Path=NavigatorMenu.SimpleCommand}" />
</Style>
</s:ElementMenu.ItemContainerStyle>
<s:ElementMenu.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Menu}">
<Grid>
<Image Source="{Binding ImageUri}"/>
<TextBlock Text="{Binding Title}" VerticalAlignment="Bottom"
HorizontalAlignment="Center"/>
</Grid>
</HierarchicalDataTemplate>
</s:ElementMenu.ItemTemplate>
</s:ElementMenu>
当然,这假设所有的绑定都能正常工作,如果它们不能正常工作,您可能应该…我不知道为什么,但我发现交互触发器在网格中不起作用。将xaml更改为
<HierarchicalDataTemplate ItemsSource="{Binding Menu}" DataType="{x:Type s:ElementMenuItem}">
<ContentControl>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<behaviours:EventToCommand Command="{Binding Source={StaticResource Locator}, Path=NavigatorMenu.SimpleCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<Grid>
<Image Source="{Binding ImageUri}"></Image>
<TextBlock Text="{Binding Title}"
VerticalAlignment="Bottom"
HorizontalAlignment="Center">
</TextBlock>
</Grid>
</ContentControl>
</HierarchicalDataTemplate>
Wth是一个元素菜单
?它是一个Surface 2.0 SDK控制项。你有没有找到解决这个问题的办法?菲尔,谢谢你的回复。我已经尝试过你提到的方法,但仍然无法启动命令。@user1205398:你看过文档中的吗?仍然不起作用。看来真的不能修改模板了。因此,在这种情况下,我有一些子菜单,我如何可以分层导出它们?我不认为把它们全部写在xaml文件中是个好主意。特别是从数据库创建菜单时。你知道吗?谢谢