【问题标题】:send an int id from one page to another universal windows app将一个 int id 从一个页面发送到另一个通用 Windows 应用程序
【发布时间】:2015-12-12 01:41:54
【问题描述】:

我必须将从 page1.xaml 的 rest web 服务获得的 id 发送到 page2.xaml 我试过这段代码:

Page1.xaml.cs:

private async void Grid1_Tapped(object sender, TappedRoutedEventArgs e)
        {
            UriString2 = "URL";

            int x= rootObject.posts[0].id;
            string uri = string.Format("/Page2.xaml?x={1}",x);

            //adding Navigation Statement
            this.Frame.Navigate(typeof(Page2), new Uri(uri, UriKind.Relative));

        }

Page2.xaml.cs:

 private async void Page_Loaded(object sender, RoutedEventArgs e)
           {
            int xx = Convert.ToInt32(NavigationContext.QueryString["x"]);
        }

此代码不起作用,我有一个错误“NavigationContext 在此上下文中不存在”,我想念什么:(

感谢帮助

【问题讨论】:

标签: c# wpf xaml win-universal-app


【解决方案1】:

对于UWP中的导航,可以使用Frame.Navigate(typeof(TargetPage));方法从当前页面导航到目标页面。

你可以看到我对另一个问题的回答:Windows Phone 8.1 - Page Navigation

在 TargetPage 中,您可以使用NavigationParameter 属性来获取导航参数。

private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
    var param = e.NavigationParameter;
}

在你的情况下,代码应该是:

来源页面:

Frame.Navigate(typeof(SecondPage), rootObject.posts[0].id);

目标页面:

private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
    string idStr = e.NavigationParameter as string;
    int id = int.Parse(idStr);
}

【讨论】:

  • 感谢 Chris 的回复,但我有一个错误 > :/
  • 我在项目中尝试创建新项目时没有找到任何基本页面,我在 Windows 10 项目中工作
  • 好的。如果不能使用 LoadState 事件。您可以使用 OnNavigatedTo 事件。
  • 感谢先生,它现在可以使用 OnNavigatedTo 方法 :)
猜你喜欢
  • 1970-01-01
  • 2014-11-08
  • 2014-11-01
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
相关资源
最近更新 更多