我有一个包含带有 UriMapper 的 Frame 的 UserControl。这也是我的 RootVisual,所以它是加载应用程序时加载的内容。这是我的(简化的)XAML:
<UserControl>
<navigation:Frame x:Name="ContentFrame" Source="/Page1">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
<HyperlinkButton x:Name="Page1Link" NavigateUri="/Page1" TargetName="ContentFrame" Content="Page1"/>
<HyperlinkButton x:Name="Page2Link" NavigateUri="/Page2" TargetName="ContentFrame" Content="Page2"/>
</UserControl>
这一切都很好,但现在我想添加一个后退按钮。当用户单击按钮时,我想调用
NavigationService.GoBack();
我可以从页面(Page1 和 Page2)调用 NavigationService,但是如何从这个“父”UserControl 调用 NavigationService?是否可以?在此 UserControl 中,NavigationService 始终为空。
我要么想从 Frame 中显示的页面访问 NavigationService,要么将按钮单击事件传递给这些页面。
我不想在每个页面中放置一个按钮并在那里处理导航。