3 votes

Est-il possible d'afficher un objet plusieurs fois dans un VirtualStringTree?

Je réalise que j'ai vraiment besoin de réécrire la structure de données de mes programmes (pas maintenant, mais bientôt, car la date limite est lundi), car j'utilise actuellement VST (VirtualStringTree) pour stocker mes données.

Ce que j'aimerais réaliser, c'est une structure de Liste de Contacts. Les noeuds racine sont les Catégories, et les enfants sont les Contacts. Il y a un total de 2 niveaux.

La chose est cependant que j'ai besoin qu'un contact s'affiche dans plus d'une catégorie, mais ils doivent être synchronisés. Particulièrement le Checkstate.

Actuellement, pour maintenir la synchronisation, je boucle à travers tout mon arbre pour trouver les noeuds qui ont le même ID que celui qui vient d'être modifié. Mais le faire est très lent lorsqu'il y a une énorme quantité de noeuds.

Alors, j'ai pensé: Serait-il possible d'afficher une seule instance de l'objet Contact, dans plusieurs Catégories?

Note : Honnêtement, je ne suis pas à 100% familier avec la terminologie - ce que je veux dire par Instance, c'est un Objet (ou Record), donc je n'aurai pas à parcourir tout mon arbre pour trouver des objets de contact avec le même ID.

Voici un exemple:

Exemple

Comme vous pouvez le voir, Todd Hirsch apparaît dans la Catégorie Test, et dans Tous les Contacts. Mais en réalité, ce sont 2 PVirtualNodes, donc lorsque je change une propriété sur l'un des noeuds (comme CheckState), ou quelque chose dans l'enregistrement/classe de données du noeud, les 2 noeuds ne sont pas synchronisés. Et actuellement, la seule façon que j'ai de les synchroniser, c'est de parcourir mon arbre, trouver tous les nœuds qui contiennent ce même contact, et appliquer les changements à eux et leurs données.

Pour résumer : Ce que je recherche, c'est un moyen d'utiliser un seul objet/enregistrement, et de l'afficher dans plusieurs Catégories dans mon arbre - et chaque fois qu'un noeud est coché, tous les autres noeuds qui contiennent le même objet Contact le seront également.

Est-ce que j'ai du sens ici?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X