【问题标题】:How to pass data between two pages in Windows Phone 8.1 application ?如何在 Windows Phone 8.1 应用程序的两个页面之间传递数据?
【发布时间】:2015-10-06 13:53:22
【问题描述】:

我有一个 Windows phone 8.1 应用程序,其中有两个页面显示数据。第一个页面有一个列表视图,显示来自 sqlite 数据库的所有数据,当用户点击列表视图中的一个项目时,第二个页面打开一个列表视图,其中包含有关数据库中该特定记录的更多详细信息。我的问题是如何使用 c# 在 Windows Phone 8.1 中实现这一点?

【问题讨论】:

    标签: c# windows-phone


    【解决方案1】:

    在 windows phone 8.1 中有两种方法:

         void SelectionChanged(object sender, SelectionChangedEventArgs    e)
        {
          var list= sender as Listview;
          var taped=list.SelectedItem as Model;
          //here you send your parameter to the second page
          Frame.Navigate(Typeof(SecondPage),taped);
        }
    

        public static Model taped;
         void SelectionChanged(object sender, SelectionChangedEventArgs    e)
        {
          var list= sender as Listview;
          taped=list.SelectedItem as Model;
    
    
        }
    

    在 SecondPage 中,您可以通过 FirstPage.taped 访问它;

    【讨论】:

      【解决方案2】:

      在第一页你应该这样写:

      Frame.Navigate(typeof(SecondPage), someData);
      

      对于第二页,您应该覆盖 OnNavigatedTo( NavigationEventArgs e )。 例如:

      protected override void OnNavigatedTo( NavigationEventArgs e )
      {
          MyData data = e.Parameter as MyData.
      }
      

      【讨论】:

        【解决方案3】:

        几个选项:

        • 要直接传递数据,可以将其作为查询字符串参数(如网页 URL)放在 URI 中。因此,例如,您可以导航到secondpage.xaml?param1=abc123&param2=<base64 data>,而不是导航到secondpage.xaml。您可以通过覆盖onNavigatedTo 函数来获取导航参数,就像检查应用程序启动时使用的参数一样(但可能不是在起始页上)。请注意,这可能是 Silverlight 特定的;我没有在非 Silverlight 应用中尝试过。
        • 一般来说,要在应用程序中传递数据,您可以使用任意数量的全局对象。您可以将公共字段添加到您从其他类读取和写入的App 类(如App.xaml.cs 中定义)。您可以在任何类中添加 static 公共字段,并从中读取和写入。全局变量被认为是一个糟糕的设计,但将它们粘贴在应该访问它们的特定类上是合理的。请注意,有时可能会在不同的线程上处理不同的页面。
        • 使用持久存储。您可以写入隔离的存储设置字典,或者只写出一个文件并让其他页面查找它。对于您想要实现的目标而言,这可能有点矫枉过正,但如果您想让应用程序的一部分从摄像头录制大量视频,而另一部分对其进行处理,这将是一个可行的解决方案。李>

        【讨论】:

          猜你喜欢
          • 2014-09-16
          • 1970-01-01
          • 1970-01-01
          • 2016-08-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多