Selector qui ne peut prendre des éléments enfants d'un certain type?
-
22-09-2019 - |
Question
Je dois écrire un contrôle qui est censé prendre seulement un certain type de contrôles enfants. Fonctionnellement il fonctionne comme un sélecteur dans que je peux sélectionner / activer sur ses Childs, mais il semble que je ne peux pas tirer de Selector, car un ItemsControl peut prendre tout type d'enfant (objet). Je voudrais vraiment avoir compiletime ici Sûreté du typage. Donc, lancer une exception quand un enfant du mauvais type est ajouté n'est pas une option.
Cette contrainte semble nécessaire car le contrôle des parents doit pouvoir compter sur certaines propriétés et behavoir dans ses enfants. Il y a aussi une communication directe des enfants avec ses parents.
Comment est quelque chose comme ça habituellement traité dans WPF.
La solution
enveloppe de ItemsControl
leurs enfants dans un type de conteneur d'éléments de votre choix. Ainsi, vous connaissez les enfants de votre ItemsControl
sera toujours de ce type. Par exemple, ListBox
es ont toujours ListBoxItem
s comme des enfants.