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

Xamarin开发中如何访问绑定的ListView的ItemSource计数属性

问题根源

ItemsSource 定义的默认类型为 IEnumerable,该接口本身未提供 Count 属性,你直接访问时会触发编译错误。只有将其转换为实际绑定的集合类型(实现了计数能力的接口/类)后,才能正常读取条目总数。

可直接使用的解决方案
  • 方案1:强转为 IList 读取(兼容性最高,数组、List<T>、ObservableCollection<T> 等绝大多数常用集合都实现了该接口)
int totalCount = 0;
if (yourListView.ItemsSource is IList boundList)
{
    totalCount = boundList.Count;
}
  • 方案2:直接读取 Items 集合的 Count 属性(所有XAML平台通用,无需处理 ItemsSource 类型,最简便)
int totalCount = yourListView.Items.Count;
  • 方案3:使用LINQ的Count()方法(需提前引入System.Linq命名空间,仅推荐非延迟加载的集合使用,延迟查询集合调用该方法会触发全量遍历,性能偏低)
using System.Linq;

int totalCount = yourListView.ItemsSource?.Cast<object>().Count() ?? 0;
  • 方案4:强转为你绑定的具体集合类型读取(适合自定义强类型集合场景)
// 示例:绑定的集合类型为 ObservableCollection<GoodsItem>
if (yourListView.ItemsSource is ObservableCollection<GoodsItem> goodsList)
{
    totalCount = goodsList.Count;
}

优先选择方案1或方案2,无需额外依赖,性能更稳定。

内容的提问来源于stack exchange,提问作者CLAUDIO SEBASTIAN ORTEGA RAMIR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:54:02