[英]How to get data from a LongListSelector item in WP8
所以我有一个LongListSelector,它将很快绑定到对象列表。
我想要的是,当点击一个LongListSelectorItems时,我可以点击特定的对象,并且能够将该对象传递到另一个屏幕,以便我可以显示有关该对象的完整信息
private void PeopleList_Tap_1(object sender, System.Windows.Input.GestureEventArgs e)
{
MessageBox.Show("SUCCESS");
}
我的Tap正在工作,我只是不知道如何获取选定的对象,或者如何使用NavigationService将其传递到另一个页面
下面是直接从我最新的应用程序中提取的。
您不能直接传递对象,但是可以传递文本数据。 就我而言,一个ID:
private void WishListBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (WishListBox != null && WishListBox.SelectedItem != null)
{
var selectedItem = (Models.Gift)WishListBox.SelectedItem;
WishListBox.SelectedIndex = -1;
var id = selectedItem.Id;
NavigationService.Navigate(new Uri("/Views/Gift/GiftView.xaml?action=load&id=" + id, UriKind.Relative));
}
}
然后在接收端:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (NavigationContext.QueryString.ContainsKey("action"))
{
if (NavigationContext.QueryString["action"]=="load")
{
PageTitle.Text = "edit gift";
giftVm.Gift = App._context.Gifts.Single(g => g.Id == Int32.Parse(NavigationContext.QueryString["id"]));
}
else if (NavigationContext.QueryString["action"] == "new")
{
PageTitle.Text = "new gift";
}
else if (NavigationContext.QueryString["action"] == "newWishList")
{
App.vm = ((MainViewModel)App.vm).Me;
}
}
else
{
MessageBox.Show("NavigationContext.QueryString.ContainsKey('action') is false");
}
}
就我而言,数据存储在数据库中。 我只是将所选项目转换为正确的对象类型,然后检查其ID并将其传递给我进行查找的下一页。
我希望这有帮助。
您可以使用SelectionChanged
事件和LongListSelector.SelectedItem
属性来获取所选项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.