gpt4 book ai didi

c# - 如何从 WP8 中的 LongListSelector 项获取数据

转载 作者:可可西里 更新时间:2023-11-01 11:13:25 26 4
gpt4 key购买 nike

所以我有一个 LongListSelector,它很快就会绑定(bind)到一个对象列表。

我想要的是当一个 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 并将其传递到我进行查找的下一页。

希望对您有所帮助。

关于c# - 如何从 WP8 中的 LongListSelector 项获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13898270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com