2015-01-03 60 views
0

我正在編寫應用程序,並且NavigateService類有問題。 導航工程時,我用它在 '父' 類examlpe:導航/刷新到另一個類的頁面

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)); 
} 
} 

這並不工作,我得到異常:

第一次機會e類型「System.NullReferenceException」 通過捕獲的xception:未設置爲一個對象的一個​​實例
對象引用

+0

可以保證'NavigationService'不爲空導航至某個頁面從類? – khlr

+0

if(this.NavigationService == null) MessageBox.Show(「null」); 爲空 – Tk000

+0

'Tk000':做這個工作嗎?new Uri(「MainPage.xaml」)'?另外,Something()在哪裏創建? –

回答

0

您可以通過使用PhoneApplicationFrame

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

的頁面的NavigationService屬性驗證該控制的主機支持導航,並返回主機導航服務。

在你的情況下,你只是創建Something頁面,但你永遠不會把它放到一個框架,所以它沒有主機,它的NavigationService屬性返回null。


此外: 可以使用App.RootFrame反正觸發導航,但你應該想到,如果這是真的做了一件好事:爲什麼你甚至在代碼中創建,而不是讓一個頁面導航句柄呢?

相關問題