【问题标题】:Windows Phone Development: How to pass tapped SQLite item from one page to another?Windows Phone 开发:如何将点击的 SQLite 项目从一个页面传递到另一个页面?
【发布时间】:2016-02-18 14:05:46
【问题描述】:

您好,这个问题与之前在 stackoverflow 上发布的这个问题完全相同:How to pass data between two pages in Windows Phone 8.1 application ?

我的 Windows Phone 8.1 应用有两个页面。第一页包含一个列表视图,显示来自 sqlite 数据库的数据。当用户点击显示的项目时,它应该将他们带到第二页,其中有从 sqlite 数据库查询的所选项目的更多详细信息。我该怎么做?

Riadh Ben Hassine 的第一个答案似乎是一个很好的解决方案。但是,由于我的声誉不够高,我无法发表评论以向他询问更多有关解决方案的问题。我不明白他的方法(将不胜感激逐行分析)。当我使用他的建议时,“模型”下面有一条红色波浪线,表示找不到模型类型。我需要使用什么程序集参考?

谢谢。

第 1 页中的代码:

private void SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var list = sender as ListView;
        var tapped = list.SelectedItem as Model;
        Frame.Navigate(typeof(Page2), tapped);
    }

第 2 页 NavigatedTo 下的代码:

Model tapped = e.Parameter as Model;
        if (e.Parameter != null)
        {
            //Something
        }

我也尝试将“Model tapped = e.Parameter as Model”放入 if 循环中。但它没有用。

【问题讨论】:

  • 如果你只使用我发布的代码应该可以正常工作,也许你有某种 if 语句会阻止导航

标签: c# sqlite windows-phone-8.1


【解决方案1】:

Model 应该是您传递给ListView 的类,例如,如果您的ListView 的来源是List<Model>,那么您将所选项目转换为Model,如果来源是List<SQLiteItem> 您必须将其转换为 SQLiteItem

    void SelectionChanged(object sender, SelectionChangedEventArgs    e)
    {
      var list = sender as Listview;

      var tapped = list.SelectedItem as Model; // Model is your datamodel

      //here you send your parameter to the second page
      Frame.Navigate(Typeof(SecondPage),tapped);
    }

在第二页你用这种方式检索它:

protected override void OnNavigatedTo( NavigationEventArgs e )
{
    Model tapped = e.Parameter as Model.
}

xaml

<ListView SelectionChanged="SelectionChanged" />

【讨论】:

  • 哦!太感谢了。但是,我如何访问“录音”?我无法使用“FirstPage.taped”访问它,FirstPage 下没有录音。
  • 我已经编辑了响应以向您展示如何在第二页中获取参数
  • 在 ItemClick 事件下放什么?如果我将代码放在 SelectionChanged 事件下,点击该项目将不会导航到第二页。如果我将这些代码放在 ItemClick 事件下,它会导航,但不会给我点击项目的信息。
  • 您需要将 xaml 中的事件从 itemclick 更改为 xaml 中的“SelectionChanged”。我添加了一个 xaml 示例
  • 我已经这样做了,它不会导航到第二页。点击该项目没有任何作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 2012-07-24
相关资源
最近更新 更多