我可以将过滤后的CollectionViewSource传递给方法吗?

时间:2015-04-16 18:11:31

标签: c# wpf observablecollection generic-collections icollectionview

我创建了一个公共CollectionView(cvs)并将其绑定到WPF应用程序中的ListView Control。然后有一系列过滤器添加代理来过滤我的cvs对象。在这方面,一切都运作良好。

public ICollectionView cvs { get; set; }
public ObservableCollection<T> TLIST
...
cvs = CollectionViewSource.GetDefaultView(TLIST);
ListViewName.ItemsSource = cvs;
...
//Filters created 
cvs.Filter = groupFilter.Filter;

我要做的是创建列表中项目的Excel文件。我可以将整个集合(TLIST)发送到OpenXML函数并创建我的文件就好了。在我努力的地方,我想只将过滤后的项目发送到函数中,并且我需要以某种方式发送过滤的cvs。

简而言之,我想要的是 - &gt; cvs.ToList()但这不是有效的操作。并得到错误

  

“无法转换类型的对象   键入'System.Windows.Data.ListCollectionView'   “System.Collections.Generic.List`1"

有什么明显我做错了吗?任何指导表示赞赏。

注意:即使我检查cvs,它也会显示所有项目,而不仅仅是已过滤的项目。

1 个答案:

答案 0 :(得分:0)

您可以尝试下面的过滤列表。

List<MyObject> lst = cvs.Cast<MyObject>().ToList();