Je dépend de VirtualTreeView pour afficher des milliers d'éléments qui sont susceptibles de changer de temps en temps et lorsque cela se produit l'arbre est nettoyé et peuplé à nouveau.VirtualTreeview: quand trier les enfants?
Le tri est fait automatiquement (toAutoSort
flag set) mais cela a un effet indésirable d'initialiser récursivement tous les nœuds et c'est une opération très coûteuse comme vous pouvez l'imaginer.
Alors, quand dois-je appeler la méthode .Sort
lorsque toAutoSort
est désactivée? (DoInitChildren semblait plausible mais j'ai obtenu des résultats bizarres comme des résultats inversés occasionnellement, donc je suppose que ce n'est pas un bon événement pour trier les enfants.)
Il n'y a pas de "nouveaux" articles à proprement parler. L'arbre est simplement réorganisé et reconstruit (car les structures de données supportant l'arbre changent complètement dans mon cas). –
"Reconstruire" l'arbre équivaut à en créer un nouveau. Le principe est le même: suspendre le tri, commencer la construction, ajouter tous les nœuds, terminer la construction, puis trier. –