将数据从枢轴页面传递到特定的全景项目

时间:2014-04-11 22:33:11

标签: c# windows-phone-8

我正在尝试将数据从数据透视表页面传递到Windows Phone应用程序中的全景图中的特定点,但它无法正常工作。

我在数据透视页面中创建了一个文本框,用户必须在其中输入名称。只要用户点击“保存”按钮(位于应用程序栏中),名称就会传输到文本块(位于全景图中)。不幸的是,当我输入名称时,这不起作用,应用程序返回到全景图的主页面,并且不显示保存的名称。

这是我尝试过的代码:

Pivot页面中的代码:

private void SaveNewName(object sender, System.EventArgs e)
    {
        // TODO: Add event handler implementation here.
        string NewName;
        NewName = NameBox.Text;
        NavigationService.Navigate(new Uri("/MainPage.xaml?msg="+ NewName, UriKind.Relative) ); 

    }

全景代码(MainPage.xaml.cs):

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        /*if (!App.ViewModel.IsDataLoaded)
        {
            App.ViewModel.LoadData();

        }*/

        base.OnNavigatedTo(e); 
        string msg = "";

        if(NavigationContext.QueryString.TryGetValue(msg, out msg))
        {  
            displayName.Text = msg;
        }  


    }

1 个答案:

答案 0 :(得分:0)

您将密钥指定为空字符串变量,而不是您在Uri中使用的密钥,然后尝试写回来。

NavigationContext.QueryString.TryGetValue("msg", out msg)

可能会做的伎俩。也可能值得将导航键定义为常量,然后在Uri创建和字典中的人口中引用它们。