Navigate/refresh 从另一个 class 翻页

Navigate/refresh to page from another class

我正在编写应用程序,但我遇到了 NavigateService 问题 class。 当我在 'parent' class 中使用它时导航有效,例如:

   MainPage.xaml
   MainPage.xaml.cs 
   Something.cs 

MainPage.xaml.cs:

//NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); <-- this works
Something neww = new Something();

Something.cs:

public partial class Something : PhoneApplicationPage {
public Something() {
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
}

这不起作用,我得到异常:

A first chance exception of type 'System.NullReferenceException' By catch:
object reference not set to an instance of an object

页面 NavigationService 属性 验证控件的主机支持导航和 returns 主机导航服务。

在您的情况下,您只是在创建 Something 页面,但从未将其放入框架中,因此它没有主机及其 NavigationService 属性 returns null.


此外: 无论如何,您都可以使用 App.RootFrame 来触发导航,但您应该考虑这是否真的是一件好事:为什么您甚至在代码中创建页面而不让导航手柄呢?

您可以使用 PhoneApplicationFrame

从 class 导航到页面
  (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/PivotPage1.xaml",
            UriKind.Relative));