私のアプリで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を参照してください。 移動後にこのオーバーライドをキャンセルするにはどうすればよいですか?
それは良い[MCVE]と、より明確な問題の記述せずにあなたの質問を理解するのは難しいです。しかし、現在のページから移動するときに 'BackPressed'イベントから退会するのを忘れてしまったように見えます。 –
ボタン/メソッドが以前に呼び出されたかどうかを確認するために、*フラグ*を使用するなどしてみましたか? – Romasz
Peter Duniho、ありがとう!あなたの助けがこの問題を解決しました。 –