ContextMenu Tap/Click Event в WP7

Если я нажму на канцелярскую кнопку, контекстное меню откроется и отобразит детали. Теперь я хочу нажать/щелкнуть контекстное меню, чтобы выполнить некоторые события. Как этого добиться??? Спасибо

<Style x:Key="MenuItemStyle" TargetType="toolkit:MenuItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="toolkit:MenuItem">
                    <StackPanel>
                        <TextBlock Text="{Binding Name}" 
                                   TextWrapping="Wrap" 
                                   Margin="24,0" 
                                   FontSize="26" Foreground="Black"/>
                        <TextBlock Text="{Binding Country}"                                        
                                   Margin="24,0" 
                                   FontSize="22" Foreground="Black"/>
                        <TextBlock Text="{Binding Status}"                                        
                                   Margin="24,0" 
                                   FontSize="22" Foreground="Black"/>
                    </StackPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

        private void Pushpin_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
    {
        var _ppmodel = sender as Pushpin;
        ContextMenu contextMenu =
            ContextMenuService.GetContextMenu(_ppmodel);
        contextMenu.DataContext = _viewModel.Pushpins.Where
            (c => (c.Coordinates
                == _ppmodel.Location)).FirstOrDefault();
        if (contextMenu.Parent == null)
        {
            contextMenu.IsOpen = true;
        }
    }

person Deepak    schedule 30.01.2013    source источник


Ответы (1)


Для обработки нажатий/щелчков на ContextMenuItem вам нужно будет добавить соответствующее событие.

e.g.

<Style x:Key="MenuItemStyle" TargetType="toolkit:MenuItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="toolkit:MenuItem">
                <StackPanel Tap="OnMenuItemTapped">
                    ...
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter
</Style>
person Matt Lacey    schedule 30.01.2013
comment
Для StackPanel нет события касания.. поправьте меня, если я ошибаюсь - person Deepak; 31.01.2013
comment
@Deepak Я определенно вижу это в WP7.1 и WP8.0. - person Matt Lacey; 31.01.2013
comment
Я использую WP7, и его там нет - person Deepak; 31.01.2013
comment
@Deepak Я создал приложение WP7.1 в VS2012, чтобы проверить, когда вы спросили, и я увидел его там. Если его нет в более ранних версиях, просто оберните StackPanel во что-то, что поддерживает Tap, и используйте его вместо этого. - person Matt Lacey; 31.01.2013