Дерево Flex использует ITreeDataDescriptor для фильтрации узлов - PullRequest
1 голос
/ 11 февраля 2011

У меня есть компонент гибкого дерева, данные которого привязаны к коллекции ArrayCollection. Я также реализовал собственный ITreeDataDescriptor для фильтрации дерева. Все работает нормально, за исключением того, что узлы первого уровня не исчезнут (будут отфильтрованы), если под ним нет дочерних узлов. Работает со второго уровня вниз.

есть предложения, как это можно сделать? Желать отфильтровывать узел первого уровня можно только тогда, когда отфильтрованы все его дочерние узлы.

Примерно так же Пример , за исключением того, что родитель исчезнет, ​​когда дети уйдут

источником является ArrayCollection, и он в значительной степени похож на следующий

var dataSource:ArrayCollection = new ArrayCollection();
dataSource.addItem(myObject1);
dataSource.addItem(myObject2);
dataSource.addItem(myObject3);
dataSource.addItem(myObject4);

и в myObject1 ~ myObject4 есть дочерние ArrayCollection с таким же типом.

1 Ответ

0 голосов
/ 11 февраля 2011

Трудно ответить без кода, но вот несколько советов по подходу:

  • убедитесь, что у вас есть корневой узел, чтобы вы также могли отфильтровывать узлы на уровне 1 (дочерние узлы корневого узла)
  • выполнить рекурсивную проверку в методе getChildren () реализации ITreeDataDescriptor, чтобы проверить, все ли дочерние узлы удалены / скрыты
...