Я переопределяю BackButton в своем приложении и показываю MessageDialog.Как отменить задачу?
public Scenario_3()
{
this.InitializeComponent();
Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}
private async void HardwareButtons_BackPresseed(object sender, BackPressedEventArgs e)
{
e.Handled = true;
var dialog = new MessageDialog("Do you want exit?");
dialog.Commands.Add(new Windows.UI.Popups.UICommand("yes") { Id = 0 });
dialog.Commands.Add(new Windows.UI.Popups.UICommand("no") { Id = 1 });
dialog.DefaultCommandIndex = 0;
dialog.CancelCommandIndex = 1;
var result = await dialog.ShowAsync();
if (result.Label == "yes")
{
this.Frame.Navigate(typeof(BlankPage1));
((Frame)Window.Current.Content).BackStack.Clear();
}
После перехода к BlankPage1 я снова вижу MessageDialog, если нажать на BackButton. Как я могу отменить это переопределение после навигации?
Это трудно понять ваш вопрос без хорошего [mcve] и более четкой постановки задачи. Но похоже, что вы просто забыли отказаться от подписки на событие «BackPressed» при навигации по текущей странице. –
Пробовали ли вы, например, использовать * флаг *, чтобы проверить, была ли ваша кнопка/метод ранее вызвана? – Romasz
Питер Дунихо, спасибо! Ваша проблема решена этой проблемой. –