Wpf 只能接受特定类型的子元素的选择器?

Wpf 只能接受特定类型的子元素的选择器?,wpf,custom-controls,itemscontrol,type-safety,Wpf,Custom Controls,Itemscontrol,Type Safety,我需要编写一个控件,该控件应该只接受某种类型的子控件。从功能上讲,它的工作原理类似于选择器,因为我可以选择/激活它的子对象,但似乎我无法从选择器派生,因为ItemsControl可以接受任何类型的子对象(object)。我真的很想在这里使用compiletime typesafety。因此,在添加错误类型的子级时引发异常不是一个选项 此约束似乎是必要的,因为父控件需要依赖其子控件中的某些属性和行为。孩子们与父母之间也有一些直接的交流 在WPF中通常是如何处理这种情况的。ItemsControl将

我需要编写一个控件,该控件应该只接受某种类型的子控件。从功能上讲,它的工作原理类似于选择器,因为我可以选择/激活它的子对象,但似乎我无法从选择器派生,因为ItemsControl可以接受任何类型的子对象(object)。我真的很想在这里使用compiletime typesafety。因此,在添加错误类型的子级时引发异常不是一个选项

此约束似乎是必要的,因为父控件需要依赖其子控件中的某些属性和行为。孩子们与父母之间也有一些直接的交流


在WPF中通常是如何处理这种情况的。

ItemsControl
将其子项包装在您选择的项目容器类型中。因此,您知道
ItemsControl
的子项将始终属于该类型。例如,
ListBox
es总是将
ListBoxItem
s作为子项。

ItemsControl
将其子项包装在您选择的项目容器类型中。因此,您知道
ItemsControl
的子项将始终属于该类型。例如,
ListBox
es总是将
ListBoxItem
s作为子项。

如何为选择器派生类选择项容器类型?根据本文:它必须是GetContainerForItemOverride();)如何为选择器派生类选择项容器类型?根据本文:它必须是GetContainerForItemOverride();)