You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin ListView绑定API数据后选中项无法获取id/name的问题求助

问题原因
  • ListView的ItemsSource绑定的是List<TodoItem>类型集合,每个列表项对应的数据源为TodoItem类实例
  • ItemSelected事件参数中的SelectedItem属性默认返回object类型,未转换类型时无法直接访问TodoItem的自定义属性,直接调用ToString()只会输出类的全限定名,无法拿到属性值
修复代码

你只需要在事件方法中先将SelectedItem强转为TodoItem类型,即可直接访问对应的name、ip属性,同时增加空值判断避免空引用异常:

private void ListView1_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    // 过滤空选中情况(比如用户取消选中时SelectedItem为null)
    if (e.SelectedItem == null)
        return;
    
    // 强转为绑定的实体类类型
    TodoItem selectedItem = (TodoItem)e.SelectedItem;
    
    // 直接获取对应属性
    string myname = selectedItem.name;
    string myip = selectedItem.ip;

    // 后续业务逻辑
}
可选优化

如果担心后续数据源类型变更导致强转抛出异常,可以使用安全转换写法:

private void ListView1_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    TodoItem selectedItem = e.SelectedItem as TodoItem;
    if (selectedItem == null)
        return;
    
    string myname = selectedItem.name;
    string myip = selectedItem.ip;
}
注意事项
  • 请确认TodoItem类中的name和ip为public修饰的属性/字段,否则无法正常访问

内容的提问来源于stack exchange,提问作者İsmail Çakmak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:24:04