Windows Phone开发:如何将抽头的SQLite项从一个页面传递到另一个页面?

时间:2016-02-18 14:05:47

标签: c# sqlite windows-phone-8.1

您好这个问题与之前在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);
    }

NavigatedTo:

下第2页的代码
Model tapped = e.Parameter as Model;
        if (e.Parameter != null)
        {
            //Something
        }

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

1 个答案:

答案 0 :(得分:0)

Model应该是您传递给ListView的类,例如,如果ListView的来源为List<Model>,则您将所选项目投放到{ {1}},如果来源为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);
    }

XAML

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