您好这个问题与之前在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”。但它没有用。
答案 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.
}