我有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/

10-09 12:39