我的UWP应用使用MvvmCross框架,并具有一个NavigationView
,其中包含主页和详细页面,如插图和文件夹结构所示。这两个页面都用[MvxSplitViewPresentation(SplitPanePosition.Content)]
注释,以在内容侧显示它们。现在,我想在详细视图中添加一个后退按钮,但是我不知道如何启用该按钮并向后导航。
信息:通过在_navigationService.Navigate<DetailViewModel>();
中调用MainViewModel
打开我的详细信息页面。
├── ViewModels
│ ├── NavigatonRootsViewModel.cs
│ ├── MainViewModel.cs
│ └── DetailViewModel.cs
├── Views
│ ├── NavigationRoot.xaml
│ ├── NavigationRoot.xaml.cs
│ ├── Main.xaml
│ ├── Main.xaml.cs
│ ├── Detail.xaml
│ └── Detail.xaml.cs
NavigationView具有内置的back button,您可以将IsBackEnabled设置为True来显示它,并订阅BackRequested事件以控制其中的向后导航操作。
。xaml:
<NavigationView IsBackEnabled="True" BackRequested="NavigationView_BackRequested">
......
<Frame x:Name="FrameContent">
</Frame>
<NavigationView>
。cs:
首先,使用Frame.CanGoBack
方法来判断后退导航历史中是否至少有一个可以返回的条目。然后使用GoBack()方法向后导航。
private void NavigationView_BackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
{
if (FrameContent.CanGoBack)
{
FrameContent.GoBack();
}
}
演示应用程序:DemoMvvmCrossNavigation