Xaml 使用MvvmCross在UWP应用程序的NavigationView中启用后退按钮

Xaml 使用MvvmCross在UWP应用程序的NavigationView中启用后退按钮,xaml,uwp,mvvmcross,master-detail,Xaml,Uwp,Mvvmcross,Master Detail,我的UWP应用程序使用MvvmCross框架,有一个NavigationView,带有一个主页和一个详细页面,如图和文件夹结构所示。这两个页面都用[MvxSplitViewPresentation(SplitPanePosition.Content)]注释,以便在内容端显示它们。现在,我想在详细视图上添加一个后退按钮,但我不知道如何启用该按钮并向后导航 private void NavigationView_BackRequested(NavigationView sender, Navigat

我的UWP应用程序使用MvvmCross框架,有一个
NavigationView
,带有一个主页和一个详细页面,如图和文件夹结构所示。这两个页面都用
[MvxSplitViewPresentation(SplitPanePosition.Content)]
注释,以便在内容端显示它们。现在,我想在详细视图上添加一个后退按钮,但我不知道如何启用该按钮并向后导航

private void NavigationView_BackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
{ 
    //use the MyFindListBoxChildOfType method from the link.
    var MyFrame = MyFindListBoxChildOfType<Frame>(NaviView); 
    if (MyFrame.CanGoBack) 
    {
        MyFrame.GoBack();
    }
}
信息:我的详细信息页面通过调用
\u navigationService.Navigate()打开MainViewModel
中选择code>


NavigationView有一个内置的,您可以将IsBackEnabled设置为True以显示它,并订阅BackRequested事件以控制其中的导航返回操作

.xaml:

<NavigationView IsBackEnabled="True" BackRequested="NavigationView_BackRequested">
    ......
<NavigationView>

......
.cs:

更新:

通过检查代码,页面不会加载到FrameContent中,NavigationView将其内置在框架中,因此您可以使用VisualTreeHelper通过引用此内容获取框架。然后使用GoBack()方法向后导航

private void NavigationView_BackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
{ 
    //use the MyFindListBoxChildOfType method from the link.
    var MyFrame = MyFindListBoxChildOfType<Frame>(NaviView); 
    if (MyFrame.CanGoBack) 
    {
        MyFrame.GoBack();
    }
}
private void NavigationView\u BackRequested(NavigationView发送方,NavigationViewBackRequestedEventArgs参数)
{ 
//使用链接中的MyFindListBoxChildOfType方法。
var MyFrame=MyFindListBoxChildOfType(NaviView);
if(MyFrame.CanGoBack)
{
MyFrame.GoBack();
}
}

演示应用程序:

我以前试过。后退按钮已启用,但我得到的印象是
\u navigationService.Navigate()不会将页面加载到名为FrameContent的框架中。页面已显示,但“后退”按钮不起作用。您是如何创建MVVMCross项目的?我对它进行了测试,效果很好,你能提供一个可以复制的简单示例吗?我遵循了这个指南,但我可以在几个小时内提供一个演示项目。我在我的问题中添加了。