这篇文章写得比较精简(又是这个网站!)
更全面的是这篇文章,所以除了推荐的CollectionViewSource.GetDefaultView外,我们也可以自己new一个collectionView的具体实现类。
一个泄漏:只是保持了CollectionView的引用,但是如果CollectionView用到了Binding上,就可能会使UI元素全都被保持在内存里无法释放(如果数据集合一直都活着的话)
关于CollectionView的View的缓存和管理,可以看代码的注释(拷贝出来看),结论就是只有当数据集合的所有View都不再使用了,才会都被释放掉,若有ViewA在被使用中,则ViewB也会留在内存里。不同的View的key是CollectionViewSource(Xaml中的代理,所以在xaml里用这套是会有缓存管理的)