Я создаю публичный CollectionView (cvs) и привяжу его к элементу управления ListView в приложении WPF. Затем есть серия фильтров, которые добавляют делегатов для фильтрации моего объекта cvs. Все работает отлично в этом аспекте программы.Могу ли я передать фильтрованный CollectionViewSource методу?
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.
Короче говоря, я пытаюсь получить это ->cvs.ToList()
, но это недействительная операция. и получаю ошибку
«Не удается привести объект типа 'System.Windows.Data.ListCollectionView' к типу« System.Collections.Generic.List`1"
Все вопиюще очевидное что я делаю неправильно? Любые рекомендации приветствуются.
Примечание: Даже когда я проверяю cvs, он показывает все элементы, а не только отфильтрованные.
Насколько я понимаю, я мог бы, возможно, просто отфильтровать свой TLIST с теми же критериями, но надеялся, что существует более умный способ использовать мою уже отфильтрованную коллекцию. – markokstate
Похоже, вы пытаетесь сохранить ListCollectionView в переменной (или передать как параметр), которая определена как List, и вы не указали этот код. Если следующая строка была «var something = cvs.ToList();« Я бы ожидал, что эта строка будет работать нормально. –
Я пытаюсь преобразовать cvs.ToList() через "var list = (Список) cvs.ToList();" –
markokstate