Eu tenho uma situação em que meus pais sabem sobre o filho (duh), mas eu quero que o filho possa fazer referência ao pai. A razão para isso é que eu quero que a criança tenha a capacidade de se designar como mais importante ou menos importante quando lhe apetecer. Quando a criança faz isso, ela a move para a parte superior ou inferior dos filhos dos pais.
No passado, usei uma propriedade WeakReference na criança para me referir ao pai, mas acho que isso acrescenta uma sobrecarga irritante, mas talvez seja a melhor maneira de fazê-lo.
Isso é apenas uma má ideia? Como você implementaria essa capacidade de maneira diferente?
Atualização 1: Adicionando mais contexto. Como é um sistema de renderização, o contêiner pai é uma lista de janelas agrupadas. O item filho (janela) que diz "Eu sou mais importante!" quer basicamente ser renderizado no topo das demais janelas.
O pai é apenas um contêiner lógico para agrupar esses filhos. Posso ver onde é uma boa ideia adicionar um evento para sinalizar a solicitação de estar no topo. Mas a implementação (o que a criança quer fazer com os pais) à parte, por que você não gostaria de ter um vínculo entre filhos e pais? Listas duplamente vinculadas fazem isso para que as pessoas possam passar de e para algo.
WeakReference
. O coletor de lixo .net pode lidar com ciclos. Se o filho não estiver mais em uso (o pai não está apontando para ele), ele será coletado apesar de conter uma referência ao pai.