Wpf 如何将命令添加到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

我正在尝试向ElementMenuItem添加命令,但无法激发该命令

<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文件中是个好主意。特别是从数据库创建菜单时。你知道吗?谢谢