У меня есть контекстное меню в моем приложении, и когда я нажимаю на MenuItem, я хочу перейти на другую страницу. У меня проблема в том, что навигация работает, но я не вижу загрузки другой страницы, так как контекстное меню остается открытым на всю длину клика. Когда я отвечаю, контекстное меню закрывается, и затем я вижу страницу, на которую я перешел. Какой правильный способ справиться с этим? Как будто мне нужно сказать ContextMenu закрыться при обработке клика, а затем перейти на нужную страницу.
обновлено с моим кодом обработчика:
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
MenuItem menuItem = sender as MenuItem;
if (menuItem != null)
{
App.appData.URL = menuItem.Header.ToString();
NavigationService.Navigate(new Uri("/BrowserPage.xaml", UriKind.Relative));
}
}
XAML код:
<local:MyListBox x:Name="messageListBox"
ItemsSource="{Binding ChannelMessages}"
MaxHeight="480"
>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu ItemsSource="{Binding URLs}">
<toolkit:ContextMenu.ItemTemplate>
<DataTemplate>
<toolkit:MenuItem Header="{Binding}" Click="MenuItem_Click"/>
</DataTemplate>
</toolkit:ContextMenu.ItemTemplate>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
<TextBlock x:Name="MessageTextbox" Text="{Binding MessageFrom}" TextWrapping="Wrap">
<TextBlock.Foreground>
<SolidColorBrush Color="{StaticResource PhoneAccentColor}"/>
</TextBlock.Foreground>
</TextBlock>
<TextBlock x:Name="FromTextBox" Text="{Binding MessageText}" Margin="0,0,0,19" Width="456" FontSize="21.333" TextWrapping="Wrap"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</local:MyListBox>
Есть идеи?
Спасибо