我最近在CodeReview(CodeReview Question)上发布了一个问题,并按照他们的建议,从ICollectionView
转移到ListCollectionView
到ListCollectionView
,而不是显而易见Contracts = await ReturnContracts();
ContractsICollectionView = CollectionViewSource.GetDefaultView(Contracts);
DataContext = this;
具有更好的过滤性能。
我现在所做的就是这个;
Contracts
其中ObservableCollection
是ContractsICollectionView
而ICollectionView
是ListCollectionView
。当我使用Contracts
代替时,我收到此错误;
无法从ICollectionView转换为ListCollectionView。
以下是ContractsListCollectionView
和public ObservableCollection<ContractModel> Contracts;
public ListCollectionView ContractsListCollectionView { get; private set; }
;
ListCollectionView
我的问题是如何实施You have shared too many files (1005/1000 files)
并利用其改进的过滤功能?
答案 0 :(得分:2)
只需声明ContractsListCollectionView
,就像这样:
public ICollectionView ContractsListCollectionView { get; private set; }
或者,如果您确实需要使用ListCollectionView
方法,而不只是ICollectionView
(请注意ListCollectionView
实现ICollectionView
),那么您需要进行投射:< / p>
ContractsICollectionView = (ListCollectionView) CollectionViewSource.GetDefaultView(Contracts);
请注意,虽然ObservableCollection
CollectionViewSource.GetDefaultView
确实返回ListCollectionView
- 但对于其他集合类型,它可能不一样,并且强制转换会失败。但是,由于您只在ObservableCollection
使用它 - 强制转换。