MVVM パターンを使用して Windows アプリを開発しました。ユーザーがリストボックスのユーザーコントロールのアイテムをクリックしたとき。ビューモデルの背後にあるコードは、別のページをナビゲートします。ページは正しく表示されますが、ナビゲーション コンテキストから queryString を取得しようとすると、「NullReferenceException」というエラーが発生します。ビューモデルの uri が修正されていることを確認しました。誰かがそれを機能させる方法を教えてくれますか? 前もって感謝します。
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();
}
ページをナビゲートするためのコードがviewModelにあります:
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());
}