获取 ICollectionView 的 Count 属性
Posted
技术标签:
【中文标题】获取 ICollectionView 的 Count 属性【英文标题】:Get Count property of ICollectionView 【发布时间】:2018-05-30 22:52:26 【问题描述】:我有 ICollectionView
private ICollectionView _snapshotList;
public ICollectionView SnapshotList
get return _snapshotList;
我在 ViewModel 构造函数中设置,其中this.smapshotListModel.SnapshotItems
返回 ObservableCollection
_snapshotList = CollectionViewSource.GetDefaultView(this.snapshotListModel.SnapshotItems);
_snapshotList.Filter = ErrorMsgFilter;
_snapshotList.CollectionChanged += OnCollectionChanged;
后来在 collectionChanged 事件中,我试图获取此集合中的项目数,
void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
this.ItemCount = _snapshotList.Count();
但它的抛出错误,即没有定义 Count 方法。
【问题讨论】:
【参考方案1】:这样试试;
_snapshotList.Cast<object>().Count();
ICollectionView
实现了IEnumarable
,但它没有像List<TSource>
、HashSet<TSource>
等那样实现IEnumerable<TSource>
。所以,ICollectionView
没有泛型类型,我们必须将其转换为@987654328 @ 一次启用Count()
方法。
【讨论】:
以上是关于获取 ICollectionView 的 Count 属性的主要内容,如果未能解决你的问题,请参考以下文章
我应该绑定到 ICollectionView 还是 ObservableCollection
ComboBox仅显示ICollectionView中字段的唯一值
CollectionViewSource、ICollectionView、ListCollectionView、IList 和 BindingListCollectionView 及其用例有啥区别?
如何使用 ICollectionView 过滤 wpf 树视图层次结构?