2012-09-07 93 views
1

我使用MVVM模式來開發我的Windows應用程序。當用戶點擊我的列表框usercontrol上的項目。視圖模型後面的代碼將導航另一個頁面。該頁面顯示正確,但問題是我得到一個錯誤 - 「NullReferenceException」,當我想從導航上下文中獲取queryString。我查看了我的viewmodel上的uri更正。有人會告訴我如何使它工作?提前致謝。在頁面加載時獲取NullReferenceException,同時獲取NavigationContext.QueryString

我參考An error is occur when we use navigation to move other page在App.xamls.cs頁面添加以下代碼,以便viewModel頁面可以導航另一個頁面。

public static PhoneApplicationFrame CurrentRootVisual 
    { 
     get 
     { 
      return (App.Current.RootVisual as PhoneApplicationFrame); 
     } 
    } 

    public static bool Navigate(Uri source) 
    { 
     if (CurrentRootVisual != null) 
      return CurrentRootVisual.Navigate(source); 

     return false; 
    } 

    public static void GoBack() 
    { 
     if (CurrentRootVisual != null) 
      CurrentRootVisual.GoBack(); 
    } 

有代碼的視圖模型導航頁:

private void ShowCallPage() 
     { 
      if (m_CurrentQueue != null) 

       App.Navigate(new Uri("/PivotPage1.xaml?id=" + m_CurrentQueue.callNumber, UriKind.Relative)); 

     } 

有代碼我的另一頁上出現錯誤:

public PivotPage1() 
    { 
     InitializeComponent(); 
     MessageBox.Show(NavigationContext.QueryString.ContainsKey("id").ToString());    

    } 

回答

1

不要訪問NavigationContext對象在PivotPage1構造函數上,改用Loaded事件。

+0

感謝它的工作。 – user819774