我有一个Windows Phone 8.1应用程序,其中有两个显示数据的页面。第一页有一个列表视图,显示来自sqlite数据库的所有数据,当用户点击列表视图中的一个项目时,第二个页面打开一个列表视图,其中包含有关该数据库中该特定记录的更多详细信息。我的问题是如何使用c#在Windows Phone 8.1中实现这一目标?
答案 0 :(得分: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访问它;
答案 1 :(得分:1)
在第一页上你应该写这样的东西:
Frame.Navigate(typeof(SecondPage), someData);
对于第二页,您应该覆盖OnNavigatedTo(NavigationEventArgs e)。 例如:
protected override void OnNavigatedTo( NavigationEventArgs e )
{
MyData data = e.Parameter as MyData.
}
答案 2 :(得分:0)
有几个选择:
secondpage.xaml
,而不是导航到secondpage.xaml?param1=abc123¶m2=<base64 data>
。您可以通过覆盖onNavigatedTo
函数来获取导航参数,就像检查启动应用程序的参数一样(但不是,可能在开始页面上)。请注意,这可能是特定于Silverlight的;我还没有尝试使用非Silverlight应用程序。App
类(在App.xaml.cs
中定义)。您可以在任何类中添加 static 公共字段,并从中进行读写。 Globals被认为是一个糟糕的设计,但将它们粘贴在应该访问它们的特定类上是合理的。请注意,有时可能会在不同的线程上处理不同的页面。