Могу ли я передать отфильтрованный CollectionViewSource методу?

Я создаю публичный CollectionView (cvs) и привязываю его к своему элементу управления ListView в приложении WPF. Затем есть ряд фильтров, которые добавляют делегатов для фильтрации моего объекта 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.ToList() но это недопустимая операция. и получить ошибку

"Невозможно привести объект типа 'System.Windows.Data.ListCollectionView' к типу 'System.Collections.Generic.List`1"

Что-нибудь явно очевидное, что я делаю не так? Любое руководство приветствуется.

Примечание: даже когда я проверяю cvs, он показывает все элементы, а не только фильтрованные.

1 ответ

Решение

Вы можете попробовать ниже, который дает отфильтрованный список.

List<MyObject> lst = cvs.Cast<MyObject>().ToList();
Другие вопросы по тегам