У меня есть ситуация, когда мой родитель знает о своем ребенке (дух), но я хочу, чтобы ребенок мог ссылаться на родителя. Причина этого в том, что я хочу, чтобы ребенок имел возможность обозначать себя как наиболее важный или наименее важный, когда ему это нравится. Когда ребенок делает это, он перемещает его в верх или низ дочерних элементов родителя.
В прошлом я использовал свойство WeakReference для дочернего элемента для обращения к его родителю, но я чувствую, что это добавляет раздражающие накладные расходы, но, возможно, это просто лучший способ сделать это.
Это просто плохая идея? Как бы вы реализовали эту способность по-другому?
Обновление 1: добавление контекста. Это система рендеринга, поэтому родительский контейнер представляет собой список окон, сгруппированных вместе. Детский элемент (окно) с надписью "Я самый важный!" хочет в основном быть представленным на вершине остальных окон.
Родитель - это просто логический контейнер для группировки этих детей. Я вижу, где добавление события, сигнализирующего о том, что запрос находится на вершине, является хорошей идеей. Но кроме реализации (то, что ребенок хочет делать с родителем), почему бы вам не захотеть связать child-> parent? Дважды связанные списки делают это, чтобы люди могли переходить к чему-то и от чего-либо.
WeakReference
. Сборщик мусора .net может обрабатывать циклы. Если ребенок больше не используется (родитель не указывает на него), он будет собран, несмотря на то, что содержит ссылку на родителя.