Селектор, который может принимать только дочерние элементы определенного типа? - PullRequest
1 голос
/ 21 февраля 2010

Мне нужно написать элемент управления, который должен принимать только определенный тип дочерних элементов управления. Функционально он работает как селектор в том смысле, что я могу выбрать / активировать его дочерние элементы, но кажется, что я не могу наследовать от селектора, поскольку ItemsControl может принимать любой тип дочернего элемента (объекта). Я действительно хотел бы иметь безопасность типов во время компиляции здесь. Поэтому исключение при добавлении дочернего элемента неправильного типа - не вариант.

Это ограничение представляется необходимым, поскольку родительский элемент управления должен полагаться на определенные свойства и поведение своих дочерних элементов. Существует также прямое общение детей с родителями.

Как это обычно обрабатывается в WPF.

1 Ответ

1 голос
/ 21 февраля 2010

ItemsControl оберните своих детей в выбранный вами контейнер. Таким образом, вы знаете, что дети вашего ItemsControl всегда будут такого типа. Например, ListBox es всегда имеют ListBoxItem s в качестве детей.

...