5

我在 WPF 中使用导航服务。为了导航到我使用的页面:

this.NavigationService.Navigate(new MyPage());

回去我使用:

this.NavigationService.GoBack();

但是如何在不使用的情况下返回第一页(主页按钮)

this.NavigationService.Navigate(new FirstScreen());

因为我不想创建新的第一页,就回到它?而且我并不总是以相同的顺序打开新屏幕。

4

3 回答 3

7

一种方法是使用方法RemoveBackEntry直到导航服务的后退堆栈中只剩下一个条目。一旦只有一个条目简单做Navigation.GoBack()

于 2013-05-29T09:14:05.990 回答
4

这是一个潜在的解决方案,但是可能有一种我目前不知道的“最佳实践”方法:

while(this.NavigationService.CanGoBack)
{
   this.NavigationService.GoBack();
}

如果后退导航历史记录中有条目,CanGoBack返回 true,因此GoBack()将被执行,直到它返回 false。从理论上讲,这应该让你回到原点,或者换句话说,第一页。

于 2013-05-29T09:13:40.663 回答
2

考虑实施PageFunction<T>. 此类(派生自Page)专为您想要放松到“开始”页面的场景而设计。type T它可以在用例(函数)“完成”时返回/提供一个对象作为结果。

更多细节(比 msdn 更好)可以在这里找到http://paulstovell.com/blog/wpf-navigation

于 2013-05-29T09:21:06.203 回答