Selektor, der nur untergeordnete Elemente eines bestimmten Typs annehmen kann?
-
22-09-2019 - |
Frage
Ich muss eine Kontrolle schreiben, die nur eine bestimmte Art von Kinderkontrollen einnehmen soll. Funktionell funktioniert es wie ein Selektor, in dem ich seine Kinder auswählen/aktivieren kann, aber es scheint, dass ich nicht aus dem Selektor ableiten kann, da ein Elementcontrol jede Art von Kind (Objekt) einnehmen kann. Ich möchte hier wirklich kompiletime Typen haben. Es ist also keine Option, eine Ausnahme zu werfen, wenn ein Kind des falschen Typs hinzugefügt wird.
Diese Einschränkung scheint notwendig zu sein, da die Elternkontrolle auf bestimmte Eigenschaften und Verhalten bei ihren Kindern stützen muss. Es gibt auch eine direkte Kommunikation der Kinder mit ihren Eltern.
Wie ist so etwas normalerweise in WPF behandelt?
Lösung
ItemsControl
Wickeln Sie ihre Kinder in einen Art von Gegenstandsbehältertyp Ihrer Wahl. So kennen Sie die Kinder von Ihnen ItemsControl
wird immer von diesem Typ sein. Zum Beispiel, ListBox
Es haben immer ListBoxItem
s als Kinder.