1

你好。我在第一页上有这段代码:

NavigationService.Navigate(new Uri("/Game/animais/A1.xaml?anim=cabra",UriKind.Relative));

在另一页我有这个:

String anim = null;
anim = this.NavigationContext.QueryString["anim"];

问题是当它到达此代码时,我收到此错误:

anim = this.NavigationContext.QueryString["anim"]; - nullreferenceexception 未处理

我不知道出了什么问题:s

4

4 回答 4

0

如果将代码放在 Windows_Loaded 事件中,它会起作用。

于 2014-03-26T19:49:03.830 回答
0

试试这个希望这对你有帮助

anim = Uri.UnescapeDataString(NavigationContext.QueryString["anim"]);
于 2013-10-30T11:23:10.053 回答
0

使用 OnNavigatedTo 事件检索 的值QueryString,在此事件上初始化 NavigationContext

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string anim = string.Empty;

    if (NavigationContext.QueryString.TryGetValue("anim",out anim))
    {
         // do something 
    }
}
于 2013-10-30T11:24:45.707 回答
0

传递值:在 Firstpage.xaml.cs 添加以下内容

传递参数的最简单方法就是使用字符串,例如:

    private void btnNavigate_Click(object sender, RoutedEventArgs e)
    {
    string variable="test";
  string url = string.Format("/Game/animais/A1.xaml?parameter={0}", variable.toString());
 NavigationService.Navigate(new Uri(url, UriKind.Relative));
    }

获取价值:在 another.xaml.cs 添加以下内容

注意:重写 OnNavigatedTo 很重要,之后您可以使用 NavigationContext 获取传递的参数。

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e); 
    string parameterValue = string.Empty; 
     parameterValue = NavigationContext.QueryString["parameter"];  
}

我认为它为你工作......

于 2013-10-30T11:25:02.393 回答