【问题标题】:Send multiple data between pages在页面之间发送多个数据
【发布时间】:2012-05-08 17:21:27
【问题描述】:

我正在 Visual Studio 中为 windows phone C# 制作应用程序 我在主页上有两个文本框。 我想将他们的内容发送到第二页。 但我做不到

我只能发送一个文本框 (name1) 而不能发送其他 (name2) 使用

 NavigationService.Navigate(new Uri("/Page1.xaml?msg=" + name1.Text, UriKind.Relative));

请帮忙

【问题讨论】:

  • 是什么导致无法发送name2?您在哪里遇到问题?

标签: c# visual-studio-2010 windows-phone-7


【解决方案1】:

根据文本框中的值是否要创建某种形式的内部状态,我会创建一个静态类来保存当前状态。

在框中输入文本时,更新此静态类上的 2 个字符串。该类显然仍可用于从您未来的页面中提取数据,并且如果用户碰巧在应用程序中点击“返回”。当您将来扩展它以保存更多数据时,它可能会对您有所帮助。

但是,使用您目前使用的 Uri 方法传递多个值应该没有问题,您可以简单地这样做:

NavigationService.Navigate(new Uri("/Page1.xaml?msg=" + name1.Text + "&name2=" + name2.Text, UriKind.Relative));

请注意,Uri 导航并不是传递参数的最佳方式。

【讨论】:

    【解决方案2】:

    这个问题之前在这里问过:-

    Windows Phone Navigation - Passing back to the page before

    该线程提供了三种不同的方法来使数据在页面之间可访问,并消除了在查询字符串中设置数据的要求。

    【讨论】:

    • NavigationService.Navigate(new Uri("/Page1.xaml?msg=" + name1.Text, UriKind.Relative));我们不能只修改这个吗?
    【解决方案3】:

    您必须在代码中覆盖 OnNavigatedFrom 方法。看看here

    对不起,方法不对。我会写这样的东西:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    { 
    Page2 page2 = e.Content as Page2;
    page2.textBox.text += name1.text;
    page2.textBox.text += name2.text'
    }
    

    【讨论】:

    • 究竟是什么,问题出在哪里?
    • 我在 mainpage.xaml 中有两个文本框 name1 和 name2,我必须将其数据分别发送到 page1.xaml 中的两个文本块 abc 和 def
    • 没错。当您导航到另一个页面时,您必须找到一个时刻。因此,您需要创建一个特殊的方法。在那里,您可以定义必须如何初始化“abc”文本字段。 OnNavigateTo 方法获取您的 Page1 作为参数的引用。
    • 尝试阅读此页面windowsphonegeek.com/articles/…
    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 2018-10-03
    • 2011-07-04
    • 1970-01-01
    • 2013-01-31
    相关资源
    最近更新 更多