取消UWP Prism应用程序中的导航

时间:2017-07-29 06:54:10

标签: navigation uwp prism

使用Prism UWP Hamburger示例作为应用程序的基础。 ViewModel通过继承Prism.Windows.Mvvm.ViewModelBase从Prism.Windows.Navigation.INavigationAware实现。在主shell中是一个拆分视图,带有一个带有按钮的选项卡,例如联系人,关于,设置等。但是如果用户选择类似"关于"从拆分视图但显示联系人页面并具有脏的未保存数据,我想询问用户是否希望丢弃任何未保存的数据,然后如果用户不希望丢弃任何未保存的数据则取消导航事件。 UWP似乎没有WPF中提供的任何导航便利界面。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我自己尚未对此进行测试,但在示例中似乎有一个测试用例尝试通过使用NavigatingFromEventArgs并将属性Cancel设置为true来取消导航(离开页面)!

    public override void OnNavigatingFrom(NavigatingFromEventArgs e, Dictionary<string, object> viewModelState, bool suspending)
    {
        e.Cancel = _isNavigationDisabled;

        base.OnNavigatingFrom(e, viewModelState, suspending);
    }

此处的示例代码 https://github.com/PrismLibrary/Prism/blob/d2874b5b26baf2590a2b25f780a84f4789c33f4c/Sandbox/Windows10/HelloWorld/HelloWorld.Unity/ViewModels/MainPageViewModel.cs#L44