【发布时间】:2016-02-22 18:28:05
【问题描述】:
使用Template 10 时,您有机会通过覆盖INavigable 方法OnNavigatingFromAsync 并将args.Cancel 设置为true,让页面的ViewModel 取消导航离开页面,如下所示:
public override Task OnNavigatingFromAsync(NavigatingEventArgs args)
{
// some logic to determine if navigation should be canceled...
args.Cancel = true;
return Task.CompletedTask;
}
这很好用,但是如果我想向用户显示一个模式对话框(解释为什么取消导航),我会将方法修改为:
public async override Task OnNavigatingFromAsync(NavigatingEventArgs args)
{
args.Cancel = true;
ContentDialog dlg = new ContentDialog()
{
Title = "Bad",
Content = "no no no!",
PrimaryButtonText = "OK",
SecondaryButtonText = "NO"
};
await dlg.ShowAsync();
}
这将显示对话框,但导航不会取消。就像 T10 忽略了 args.Cancel = true; 的设置。
我在这里做错了吗?我只想显示对话框然后阻止导航..
【问题讨论】:
标签: c# win-universal-app template10