Tengo una situación en la que mi padre sabe de su hijo (duh) pero quiero que el niño pueda hacer referencia al padre. La razón de esto es que quiero que el niño tenga la capacidad de designarse a sí mismo como el más importante o el menos importante cuando lo desee. Cuando el niño hace esto, lo mueve a la parte superior o inferior de los hijos de los padres.
En el pasado, he usado una propiedad WeakReference en el niño para referirme al padre, pero creo que agrega una sobrecarga molesta, pero tal vez sea la mejor manera de hacerlo.
¿Es solo una mala idea? ¿Cómo implementaría esta habilidad de manera diferente?
Actualización 1: Agregar más contexto. Este es un sistema de representación, por lo que el contenedor principal es una lista de ventanas agrupadas. El elemento secundario (ventana) que dice "¡Soy lo más importante!" básicamente quiere representarse en la parte superior del resto de las ventanas.
El padre es solo un contenedor lógico para agrupar a estos niños juntos. Puedo ver dónde agregar un evento para indicar que la solicitud está en la parte superior es una buena idea. Pero dejando de lado la implementación (lo que el niño quiere hacer con el padre), ¿por qué no querrías vincular niño-> padre? Las listas doblemente vinculadas hacen esto para que las personas puedan desplazarse hacia y desde algo.
WeakReference
. El recolector de basura .net puede manejar ciclos. Si el niño ya no está en uso (el padre no lo señala), se recopilará a pesar de contener una referencia al padre.