У меня есть 2 уровня TreeView, который заполнен коллекцией элементов, у каждого из которых есть другая коллекция элементов.
class A
{
public List<B> collection;
}
List<A> treeViewCollection;
Я использую ListCollectionView для сортировки этих элементов с помощью конвертера в случае коллекции внутри коллекции, как рекомендовано здесь:
Как отсортировать элементы TreeView, используя SortDescription в Xaml?
Проблема, которую я обнаружил, заключается в том, что ListCollectionView не обрабатывает элементы при их редактировании, поэтому я создал свой собственный класс ListCollectionView для присоединения к уведомлению свойства items. Чего я не знаю, что делать сейчас, когда я обнаружил, что элемент изменился, чтобы прибегнуть к ListCollectionView. Если я вызываю Refresh () в ListCollectionView, я теряю выделение в TreeView, я где-то видел, как вызывать функцию CollectionChangedNotification с действием Replace (и это звучит для меня неплохо), но это не влияет на TreeView.
Есть идеи, как обновить сортировку TreeView без потери всех выделенных элементов и расширенных элементов?
Спасибо.