在Windows Phone C#中的页面之间传递字符串值时Navigation_Failed

时间:2014-07-26 20:39:55

标签: c# windows windows-phone-8

我想将string.xaml中的字符串值传递给MainPage.xaml

这是我的代码 的 settings.xaml

Public settings(){
.....
string url = string.Format("/MainPage.xaml?msg1={0}", updateSignature.Text);
        NavigationService.Navigate(new Uri(url, UriKind.Relative));}

我的更新。签名是一个文本块

这是我在 MainPage.xaml

中的代码
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            string msg1 = "";
            if (NavigationContext.QueryString.TryGetValue("msg1", out msg1))
            {
                textBlock1.Text = String.Format("Signature Anda :{0}", msg1);
            }

当我构建它并移动到设置页面时,我收到了Navigation_Failed错误。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您在SettingsPage.xaml中的代码似乎是在构造函数中。这不是正确的做法。我无法解决你的问题究竟是什么,但我能以简单的方式为你提供解决方案。我在设置page.xaml中的代码是,

    <StackPanel>
        <TextBlock Name="updateSignature" Text="textinSettingsPage" FontSize="30"/>
        <Button Content="GotoMainPage" Click="Button_Click"/>
    </StackPanel>

我使用按钮点击处理了这个。这是我在SettingsPage.xaml.cs文件中的代码,

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        string url = string.Format("/MainPage.xaml?msg1={0}", updateSignature.Text);
        NavigationService.Navigate(new Uri(url, UriKind.Relative));
    }

这是MainPage.xaml中的代码,

    <StackPanel>
        <TextBlock Name="textBlock1" FontSize="30"/>
        <Button Content="Go to settings page" Click="settings_Click" Name="settings"/>
    </StackPanel>

最后我的代码是MainPage.xaml.cs,

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        string msg1 = "";
        if (NavigationContext.QueryString.TryGetValue("msg1", out msg1))
        {
            textBlock1.Text = String.Format("Signature Anda :{0}", msg1);
        }
    }

    private void settings_Click(object sender, RoutedEventArgs e)
    {
        NavigationService.Navigate(new Uri("/SettingsPage.xaml", UriKind.RelativeOrAbsolute));
    }