gpt4 book ai didi

navigation - 使用 MessageBox 在 Page.OnNavigatingFrom 中取消导航

转载 作者:行者123 更新时间:2023-12-01 03:35:04 37 4
gpt4 key购买 nike

我有一个两页的 WinRT 应用程序,其中第一个导航到第二个。我想问OnNavigatingFrom的用户如果他真的想通过消息框导航到第二个。导航取消是通过设置 .Cancel=true 来完成的。的 eventargs ...我可以在消息框完成后做。

我的问题是 MessageDialog.ShowAsync是一种异步方法。

1.
做不到 .AsTask().Result ...当然会导致僵局。

2.
无法使用 await ,因为 OnNavigatingFromvoid ,因此使其异步会导致调用者在我等待时立即返回 ShowAsync().AsTask().Result .

最佳答案

无法从 OnNavigatingFrom(NavigatingCancelEventArgs e) 事件处理程序异步取消导航。

如果要防止用户导航离开,则必须在请求导航之前显示对话框。

var dialog          = new MessageDialog("Navigate away ?");
var okCommand = new UICommand("OK");
var cancelCommand = new UICommand("Cancel");
dialog.Commands.Add(okCommand);
dialog.Commands.Add(cancelCommand);

var result = await dialog.ShowAsync();
if(result == okCommand)
{
(Window.Current.Content as Frame).Navigate(typeof(BlankPage1));
}

关于navigation - 使用 MessageBox 在 Page.OnNavigatingFrom 中取消导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35603141/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com