【问题标题】:How to pass multiple data between pages in windows phone如何在windows phone的页面之间传递多个数据
【发布时间】:2014-01-29 19:14:25
【问题描述】:

在window phone中,我使用以下代码在页面之间传输数据,

NavigationService.Navigate(new Uri("/Page.xaml?object1=" & obj, UriKind.Relative));

这里我在页面之间传递一个对象,我应该怎么做才能在页面之间传递两个对象??

【问题讨论】:

    标签: c# windows-phone-7


    【解决方案1】:

    更新:

    这个问题的答案是更好的解决方案:Passing data from page to page

    • 代码:

      PhoneApplicationService.Current.State["MyObject"] = yourObject;
      NavigationService.Navigate(new Uri("/view/Page.xaml", UriKind.Relative));
      
      //In the Page.xaml-page
      var obj = PhoneApplicationService.Current.State["MyObject"];
      

    您可以只在 URL 中添加参数,如下所示:

    NavigationService.Navigate(new Uri("/Page.xaml?object1=" + obj + "&object2=" + obj2, UriKind.Relative));
    

    否则,创建一个包含所有对象的包装器对象(就像在 MVVM 模式中使用的那样):

    public class Container
    {
        public object Object1 { get; set; }
        public object Object2 { get; set; }
    }
    
    var container = new Container { Object1 = obj, Object2 = obj2 };
    NavigationService.Navigate(new Uri("/Page.xaml?object1=" + container, UriKind.Relative));
    

    【讨论】:

    • 我也有同样的疑问,如何获取页面视图中的容器对象?
    • @danielrvt 你检查我的更新了吗?检查我的答案中另一个问题的链接以获取更多信息。 :)
    • @danielrvt,页面需要这个方法:protected override void OnNavigatedTo(NavigationEventArgs e) { //code with the Container like the Abbas answer }
    • 首选第一种方法。
    • @Tealc Wu:这也是更好的方法。
    【解决方案2】:

    我不确定你所说的对象是什么意思。您是指继承自 Object 的 ACTUAL 对象,还是指诸如 String 值或 int 值之类的值。

    不管:

    NavigationService.Navigate(new Uri("/Page.xaml?object1="+obj+"&object2="+obj2, UriKind.Relative));
    

    这应该适合你。

    【讨论】:

    • 这种方式只能在页面之间传递字符串。使用 PhoneApplicationService.Current.State["MyObject"] 保存您想要传递的任何对象。
    【解决方案3】:

    尝试阅读this

    另外,您应该了解 MVVM 模式并尝试使用它! 关于 MVVM 可以阅读here

    【讨论】:

    • 第一个链接坏了,而且你不能说去学习关于 WP 开发的每一个问题的整个 MVVM。
    猜你喜欢
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2013-12-12
    • 2016-08-04
    相关资源
    最近更新 更多