我有一个包含带有Urimapper的帧的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();
.

我可以从页面调用Navigationservice(第1页和第2页),但如何从此“父”用户组件中调用NavigationService?是否可以?在此UserControl中,Navigationservice始终为NULL。

我要么要从帧中显示的页面访问Navigationservice,或将按钮单击事件传递给这些页面。

我不想在每个页面中放置一个按钮并处理那里的导航。

有帮助吗?

解决方案

尝试使用

ContentFrame.Navigate(YOUR_URI);
.

ContentFrame.GoBack();
.

在您的父用户配置中包含带有x:name=“contentframe”的导航框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top