Windows runtime Windows 8.1 C#如何在导航到页面后清除框架

Windows runtime Windows 8.1 C#如何在导航到页面后清除框架,windows-runtime,windows-store-apps,winrt-xaml,windows-8.1,Windows Runtime,Windows Store Apps,Winrt Xaml,Windows 8.1,我有一个全局页面,其中包含指向不同页面的导航按钮。它还承载一个名为ContentFrame的框架。单击导航按钮时,它将导航到不同的页面。但最初会对数据库进行一些调用,当返回数据时,ContentFrame会首先导航到主页。 我有一个后退按钮和一个主页按钮。当contentframe中包含MainPage并单击“上一步”按钮时,我希望应用程序返回到加载整个全局页面的前一页。如果内容框架只是加载了一些其他页面,那么我希望它只返回到单击“上一步”按钮时加载的上一个页面。 下面是我在全局xaml中的co

我有一个全局页面,其中包含指向不同页面的导航按钮。它还承载一个名为ContentFrame的框架。单击导航按钮时,它将导航到不同的页面。但最初会对数据库进行一些调用,当返回数据时,ContentFrame会首先导航到主页。 我有一个后退按钮和一个主页按钮。当contentframe中包含MainPage并单击“上一步”按钮时,我希望应用程序返回到加载整个全局页面的前一页。如果内容框架只是加载了一些其他页面,那么我希望它只返回到单击“上一步”按钮时加载的上一个页面。 下面是我在全局xaml中的contentframe代码

 <Frame x:Name="ContentFrame" Grid.Row="1" Grid.Column="1" />
我面临的问题是,当ContentFrame加载主页并单击“上一步”按钮时,它会导航回加载全局页面之前的前一页,但在此过程中,在我取消订阅某些事件的地方,不会引发主页的onnavigatedfrom()事件。 你知道在这种情况下如何让onNavigatedFrom()启动MainPage吗


感谢

最简单的解决方案可能是处理
已卸载的
事件,而不是处理
OnNavigatedFrom
,这样,无论导航如何,只要从可视树中删除,都会进行清理。您可能希望将其与加载的
事件配对,以防页面被添加到可视化树而未被导航到(例如,当缓存的父页面被导航到时)。

当然。这样做:

var frame = Window.Current.Content as Frame;
frame.SetNavigationState(string.Empty);

祝你好运

这会在Windows 10 UWP项目中引发异常(尚未测试Windows 8.1)。这是故意的行为吗?
var frame = Window.Current.Content as Frame;
frame.SetNavigationState(string.Empty);