我有ICollectionView
private ICollectionView _snapshotList;
public ICollectionView SnapshotList {
get { return _snapshotList; }
}
在ViewModel构造函数中设置的哪个im,其中
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方法定义。
最佳答案
像这样尝试;
_snapshotList.Cast<object>().Count();
ICollectionView
实现IEnumarable
,但不实现IEnumerable<TSource>
,List<TSource>
等HashSet<TSource>
。因此,ICollectionView
没有通用类型,我们必须将其强制转换为IEnumerable<object>
才能启用Count()
方法。关于c# - 获取ICollectionView的Count属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47854184/