Нет встроенной функции фильтрации для TcxTreeList.
Я хотел бы повторить дерево при каждом изменении данных фильтра и установить для свойства Visible
узла значение false. После этого вызовите метод DataChanged
из TcxTreeList, чтобы обновить отображение.
Обычно я работаю с компонентами DevExpress в режиме провайдера.
У меня есть внутренний потомок TList, который содержит мои элементы.
В этом случае у меня может быть 2 списка: TListAllItems и TListFilteredItems.
Мой TcxTreeList будет отображать элементы из TListFilteredItems.
При первом заполнении TreeList оба списка будут содержать одинаковые элементы.
Всякий раз, когда я фильтрую свой список, я удаляю / добавляю элементы из TListFilteredItems и вызываю CustomDataController.DataChanged
. Тогда отфильтрованные элементы не будут отображаться, поскольку TListFilteredItems не содержит их.
Это не займет много памяти, поскольку только первый список TListAllItems будет владеть элементами, тогда как другой будет хранить только указатели, а не Освобождать элементы при удалении или Создавать их при добавлении, а просто добавлять / удалять указатель элемента на внутренний объект TList.