Селектор, который может принимать только детские элементы определенного типа?
-
22-09-2019 - |
Вопрос
Мне нужно написать контроль, который должен принимать только определенный тип управления дочерним делом. Функционально он работает как селектор в том смысле, что я могу выбрать/активировать его детей, но кажется, что я не могу получить от селектора, потому что элементы Control могут принимать любой тип ребенка (объект). Я действительно хотел бы иметь здесь Compiletime Typesafety. Таким образом, выбросить исключение, когда добавлен ребенок неправильного типа, не является вариантом.
Это ограничение, по -видимому, необходимо, потому что родительский контроль должен полагаться на определенные свойства и поведение у своих детей. Существует также некоторое прямое общение с детьми с родителями.
Как что -то подобное обычно обрабатывается в WPF.
Решение
ItemsControl
Заверните своих детей в тип контейнера на ваш выбор. Таким образом, вы знаете детей ваших ItemsControl
всегда будет такого типа. Например, ListBox
ES всегда есть ListBoxItem
S как дети.