使用 Prism UWP Hamburger 示例作为应用的基础。ViewModel通过继承Prism.Windows.Mvvm.ViewModelBase从Prism.Windows.Navigation.INavigationAware实现。在主外壳中是一个带有选项卡的拆分视图,其中包含联系人、关于、设置等按钮。但是,如果用户从拆分视图中选择类似"关于"的内容,但显示联系人页面并且有脏的未保存数据,我想问用户是否希望丢弃任何未保存的数据,然后取消导航事件如果用户不希望丢弃任何未保存的数据。UWP 似乎没有任何 WPF 中可用的导航便利界面。有什么想法吗?
我自己还没有测试过,但在示例中似乎有一个测试用例试图通过使用 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