Как добавить команду в ElementMenuItem? - PullRequest
0 голосов
/ 12 февраля 2012

Я пытаюсь добавить команду в 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>

Кто-нибудь знает, как добавить команду в меню?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2012

Не знаю почему, но я считаю, что триггеры взаимодействия не работают в Grid.Измените свой 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>
0 голосов
/ 12 февраля 2012

Понятия не имею, что это за элементы управления, но если они наследуются от обычных меню, вы должны использовать 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>

Это, конечно, предполагает, что все привязки действительно работают, если ониразве вы не должны отлаживать их ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...