Mam sytuację, w której mój rodzic wie o swoim dziecku (duh), ale chcę, aby dziecko mogło odnieść się do rodzica. Powodem tego jest to, że chcę, aby dziecko mogło określić się jako najważniejsze lub najmniej ważne, gdy ma na to ochotę. Gdy dziecko to robi, przesuwa je na górę lub dół dzieci rodzica.
W przeszłości korzystałem z właściwości WeakReference dla dziecka, aby odsyłać do rodzica, ale wydaje mi się, że to irytuje, ale może to po prostu najlepszy sposób, aby to zrobić.
Czy to tylko zły pomysł? Jak wprowadziłbyś tę umiejętność w inny sposób?
Aktualizacja 1: Dodanie więcej kontekstu. Jest to system renderowania, więc kontener nadrzędny jest listą okien zgrupowanych razem. Element podrzędny (okno) z napisem „Jestem najważniejszy!” chce być renderowane w górnej części pozostałych okien.
Rodzic jest tylko logicznym kontenerem do grupowania tych dzieci. Widzę, gdzie dodanie zdarzenia sygnalizującego prośbę o umieszczenie na szczycie jest dobrym pomysłem. Ale na bok implementacja (co dziecko chce zrobić z rodzicem), dlaczego nie chcesz mieć linkowania dziecko-> rodzic? Robią to podwójnie połączone listy, aby ludzie mogli przejść do czegoś i z czegoś.
WeakReference
. Moduł śmieci .NET może obsługiwać cykle. Jeśli dziecko nie będzie już używane (rodzic nie wskazuje na niego), zostanie ono zebrane, mimo że zawiera odniesienie do rodzica.