Ho una situazione in cui il mio genitore sa che è figlio (duh) ma voglio che il bambino sia in grado di fare riferimento al genitore. La ragione di ciò è che voglio che il bambino abbia la capacità di designare se stesso come il più importante o il meno importante quando ne ha voglia. Quando il bambino fa questo, lo sposta nella parte superiore o inferiore dei figli del genitore.
In passato ho usato una proprietà WeakReference sul bambino per fare riferimento al genitore, ma sento che aggiunge un fastidioso sovraccarico, ma forse è solo il modo migliore per farlo.
È solo una cattiva idea? Come implementeresti questa abilità in modo diverso?
Aggiornamento 1: aggiunta di altro contesto. Questo è un sistema di rendering, quindi il contenitore padre è un elenco di finestre raggruppate insieme. L'elemento figlio (finestra) che dice "Sono più importante!" vuole sostanzialmente essere reso in cima al resto delle finestre.
Il genitore è solo un contenitore logico per raggruppare questi bambini insieme. Posso vedere dove aggiungere un evento per segnalare la richiesta di essere in cima è una buona idea. Ma implementazione (cosa il bambino vuole fare con il genitore) a parte, perché non dovresti avere un collegamento figlio-> genitore? Gli elenchi doppiamente collegati lo fanno in modo che le persone possano spostarsi da e verso qualcosa.
WeakReference
. .Net garbage collector può gestire i cicli. Se il bambino non è più in uso (il genitore non lo punta), verrà raccolto nonostante contenga un riferimento al genitore.