在wp中,使用NavigationService.Navigate导航页面出现错误

我们在WP项目中采用页面导航时候,经常会使用以下代码

NavigationService.Navigate(new Uri("/Page1.xaml",UriKind.Relative));

但是,有的时候会出现错误:

"Error 1 An object reference is required for the non-static field, method, or property 'System.Windows.Navigation.NavigationService.Navigate(System.Uri)'

我了解了一下,

http://stackoverflow.com/questions/6003212/wp7-navigationservice-navigate-is-complaining-that-it-is-not-receiving-an-obj

从上面这个答案中可以了解到:


The Navigate method is actually part of the non-static NavigationService class.


Since it's non-static, you need to create an instance of it. The reason you haven't had to create an instance before is because it's part of the Page object, 


but since you're not inheriting from the Page object, you don't have access to the NavigationService instance.

There are various ways around this such as creating an event handler in your usercontrol that your host Page object (e.g. MainPage) can subscribe to and have it fire the NavigationService on its behalf.


Or you can simply access the NavigationService from the Application host like so:

(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(targetUri);



posted @ 2013-09-02 19:40  金靴欧文  阅读(814)  评论(0编辑  收藏  举报