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

时间:2015-01-03 10:50:47

标签: c# wpf xaml windows-phone-8

我正在编写应用程序,我遇到了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();

Something.cs:

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

这不起作用,我得到例外:

  

类型&#39; System.NullReferenceException&#39;的第一次机会异常。   通过捕获:
  对象引用未设置为对象的实例

2 个答案:

答案 0 :(得分:1)

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

在您的情况下,您只是创建了Something页面,但是您永远不会将它放入框架中,因此它没有主机,并且其 NavigationService 属性返回null。


此外: 你可以使用 App.RootFrame 来触发导航,但你应该想一想这是不是一件好事:为什么你甚至在Code中创建一个页面而不让导航处理它? / p>

答案 1 :(得分:0)

您可以使用PhoneApplicationFrame

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