Могу ли я передать отфильтрованный 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();