只能获取某种类型的子元素的选择器?

时间:2010-02-21 19:57:01

标签: wpf custom-controls itemscontrol type-safety

我需要编写一个应该只接受某种类型的子控件的控件。在功能上它像Selector一样工作,我可以选择/激活它的孩子,但似乎我不能从Selector派生,因为ItemsControl可以采用任何类型的子(对象)。我真的希望在这里有编译时类型安全。因此,当添加错误类型的子项时抛出异常不是一种选择。

这种约束似乎是必要的,因为父控件需要依赖于子控件中的某些属性和行为。孩子们与父母也有一些直接的沟通。

这样的事情通常是如何在WPF中处理的。

1 个答案:

答案 0 :(得分:1)

ItemsControl将他们的孩子包装在您选择的项目容器类型中。因此,您知道ItemsControl的孩子将永远属于那种类型。例如,ListBox es始终以ListBoxItem为子项。