Windows Phone开发C#:在页面之间发送信息

时间:2013-01-13 16:46:49

标签: c# .net windows vb.net windows-phone-7

我试图在两个页面之间发送几个字符串。但是,接收页面仅将其解释为一个。关于如何解决这个问题的任何建议。

第1页

private void button1_Click(object sender, RoutedEventArgs e)
        {
            string urlofdestinationpage = "/Page1.xaml";
            urlofdestinationpage += string.Format("?SelectedIndex=" + playersList.SelectedIndex);
            urlofdestinationpage += string.Format("?Player1=" + textBox1.Text);
            NavigationService.Navigate(new Uri(urlofdestinationpage, UriKind.Relative));
        }

第2页

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            IDictionary<string, string> x = this.NavigationContext.QueryString;
            String size = Convert.ToString(x["SelectedIndex"]);
            MessageBox.Show(size);
String player = Convert.ToString(x["Player1"]);
                MessageBox.Show(player1);
            base.OnNavigatedTo(e);
        }

接收页面输出一条消息“0?Player1 =”,并且不将player1识别为值。

任何帮助?

2 个答案:

答案 0 :(得分:2)

您的URI格式错误。 ?表示参数的开头,每个参数必须用&分隔。

您正在构建的URI是:

  

的Page1.xaml?的SelectedIndex = 0?PLAYER1 = ...

您应该构建的URI是:

  

的Page1.xaml的SelectedIndex = 0&安培; PLAYER1 = ...

private void button1_Click(object sender, RoutedEventArgs e)
{
    string urlofdestinationpage = "/Page1.xaml";
    urlofdestinationpage += string.Format("?SelectedIndex=" + playersList.SelectedIndex);
    urlofdestinationpage += string.Format("&Player1=" + textBox1.Text);
    NavigationService.Navigate(new Uri(urlofdestinationpage, UriKind.Relative));
}

答案 1 :(得分:0)

您应该使用&amp;处理第二个和任何其他参数。不是吗?就像在URL中一样:/Page1.xml?param1=x&param2=y