当我点击NavigateButton(Back)到主页时,我想做一些检查。 1.显示MessageDialog show更新内容“是”或“不是” 2.如果单击是,请更新当前页面。 如果单击否,则不执行任何操作 3.到主页。
我使用下面的代码,但目前它将首先返回主页,然后弹出消息对话框。 在单击消息对话框
后,如何让导航到主页的操作发生 protected async override void OnNavigatedFrom(NavigationEventArgs e)
{
MessageDialog md = new MessageDialog("Do you want to save");
md.Commands.Add(new UICommand("Yes", (UICommandInvokedHandler) =>
{
Application.Current.Exit();
//this.UpdateClick();
}));
md.Commands.Add(new UICommand("No"));
var task = md.ShowAsync().AsTask();
await task;
}
答案 0 :(得分:1)
OnNavigateFrom不可取消,并且在导航已经发生后发生。
为什么不将后退按钮重新连接到弹出消息框的点击处理程序,而不是使用代码?然后,当用户单击按钮时,您将执行相应的导航。
private async void OnBackButtonClick(object sender, RoutedEventArgs routedEventArgs)
{
MessageDialog md = new MessageDialog("Do you want to save");
md.Commands.Add(new UICommand("Yes", uiCommandInvokedHandler =>
{
// Refresh logic
}));
md.Commands.Add(new UICommand("No", uiCommandInvokedHandler =>
{
var rootFrame = (Frame)Window.Current.Content;
rootFrame.Navigate(typeof(MainPage));
}));
await md.ShowAsync();
}