1

我使用 MVVM 模式来开发我的 Windows 应用程序。当用户单击我的列表框用户控件上的项目时。视图模型后面的代码将导航另一个页面。页面显示正确,但问题是当我想从导航上下文中获取 queryString 时出现错误 - “NullReferenceException”。我检查了我的视图模型上的 uri 是否已更正。有人会告诉我如何让它工作吗?提前致谢。

我参考An error is occurred when we use navigation to move other page to add the following code on App.xamls.cs page,所以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());            

    }
4

1 回答 1

1

不要访问 PivotPage1 构造函数上的 NavigationContext 对象,而是使用 Loaded 事件。

于 2012-09-07T16:46:54.603 回答