【问题标题】:Get ListView Item Values of row tapped获取点击行的 ListView 项目值
【发布时间】:2021-04-05 17:03:53
【问题描述】:

获取点击行的 ListView 项目值。我可以像这样在后面的代码中点击该项目:

private async void Item_Tapped(object sender, ItemTappedEventArgs e)
{
    ListView listView = (ListView)sender;
    if (listView != null)
    {
       string pName = e.Item //.PNname; **<<-- This is returning my bound values (4 items) as PName, PNumber... and so on**
    }
}

我尝试输入 .PName 它是 e.Item 列表的子值,但这是无效的。我真的需要按名称抓取,因为它似乎返回选定的行项目以随机方式返回值?一次 PName 将是第一个,然后可能是第二个或第三个?

无论如何,我缺少什么来获取我需要的值?

我在这里做了很多视觉上的事情,但想让这段代码非常简单,因为我实际上在获取行中的单个值时遇到了问题。

TIA! 干杯! 瑞克...

【问题讨论】:

  • 将 e.Item 的类型转换为你的模型,然后你就可以访问你的模型中的属性了。
  • 谢谢杰克的回复。

标签: c# listview xamarin xamarin.forms


【解决方案1】:

e.Item 是一个对象(数据类型),如果我没记错的话。您必须先将 e.Item 转换为正确的数据类型:

string pName = (e.Item as Person)?.PName;

(假设PNamePerson 类的属性)

【讨论】:

  • 谢谢 Saber。我以不正确的方式进行投射,我一直在尝试进行正常的投射:string pname = (PInfo)e.item;然后使用 pname.PName 获取值
  • @Rick You´rewelchome ...但只要演员阵容有效,这实际上应该有效:string pName = ((PInfo)e.Item).PName;
【解决方案2】:

尝试获取单击的 itemIndex 并获取列表中的元素或使用 AutomationId。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多