从另一个类导航/刷新到页面

本文关键字:刷新 另一个 导航 | 更新日期: 2023-09-27 18:35:56

我正在编写应用程序,我在使用NavigateService类时遇到问题。当我在"父"类中使用它进行考试时,导航工作:

   MainPage.xaml
   MainPage.xaml.cs 
   Something.cs 

MainPage.xaml.cs:

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

某事.cs:

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

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

类型为"System.NullReferenceException"的第一次机会异常 按捕获:
对象引用未设置为对象的实例

从另一个类导航/刷新到页面

页面导航服务属性验证控件的宿主是否支持导航并返回宿主导航服务。

在您的情况下,您只是创建"某物"页面,但从未将其放入框架中,因此它没有主机,其 NavigationService 属性返回 null。


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

您可以使用 PhoneApplicationFrame 从类导航到页面

  (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/PivotPage1.xaml",
            UriKind.Relative));