我使用 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());
}