我在 WPF 中使用导航服务。为了导航到我使用的页面:
this.NavigationService.Navigate(new MyPage());
回去我使用:
this.NavigationService.GoBack();
但是如何在不使用的情况下返回第一页(主页按钮)
this.NavigationService.Navigate(new FirstScreen());
因为我不想创建新的第一页,就回到它?而且我并不总是以相同的顺序打开新屏幕。
一种方法是使用方法RemoveBackEntry直到导航服务的后退堆栈中只剩下一个条目。一旦只有一个条目简单做Navigation.GoBack()
这是一个潜在的解决方案,但是可能有一种我目前不知道的“最佳实践”方法:
while(this.NavigationService.CanGoBack)
{
this.NavigationService.GoBack();
}
如果后退导航历史记录中有条目,CanGoBack返回 true,因此GoBack()将被执行,直到它返回 false。从理论上讲,这应该让你回到原点,或者换句话说,第一页。
考虑实施PageFunction<T>
. 此类(派生自Page
)专为您想要放松到“开始”页面的场景而设计。type T
它可以在用例(函数)“完成”时返回/提供一个对象作为结果。
更多细节(比 msdn 更好)可以在这里找到http://paulstovell.com/blog/wpf-navigation