J'ai une situation où mon parent connaît son enfant (duh) mais je veux que l'enfant puisse faire référence au parent. La raison en est que je veux que l'enfant ait la capacité de se désigner comme le plus important ou le moins important quand il en a envie. Lorsque l'enfant fait cela, il le déplace vers le haut ou le bas des enfants du parent.
Dans le passé, j'ai utilisé une propriété WeakReference sur l'enfant pour renvoyer à son parent, mais je pense que cela ajoute une surcharge ennuyeuse, mais c'est peut-être juste la meilleure façon de le faire.
Est-ce juste une mauvaise idée? Comment mettriez-vous en œuvre cette capacité différemment?
Mise à jour 1: ajout de plus de contexte. Il s'agit d'un système de rendu, le conteneur parent est donc une liste de fenêtres regroupées. L'élément enfant (fenêtre) qui dit "Je suis le plus important!" veut essentiellement être affiché en haut du reste des fenêtres.
Le parent est juste un conteneur logique pour regrouper ces enfants. Je peux voir où l'ajout d'un événement pour signaler la demande d'être au sommet est une bonne idée. Mais la mise en œuvre (ce que l'enfant veut faire avec le parent) à part, pourquoi ne voudriez-vous pas que le lien enfant-> parent soit établi? Les listes doublement liées le font pour que les gens puissent aller vers et depuis quelque chose.
WeakReference
. Le garbage collector .net peut gérer les cycles. Si l'enfant n'est plus utilisé (le parent ne le pointe pas), il sera collecté malgré le fait qu'il contienne une référence au parent.