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