您可以从给定的ItemContainerGenerator获得容器类型吗?
本文关键字:类型 ItemContainerGenerator | 更新日期: 2023-09-27 18:15:37
给定任意的ItemsControl
,是否有可能获得其ItemContainerGenerator
创建/使用的容器对象的类型?
例如,给定ListBox
,我试图获得ListBoxItem
类型。对于TreeView
,它将是TreeViewItem
,等等。
我正试图为任何ItemsControl
(或更准确地说,任何利用ItemContainerGenerator
的控制)找到通用解决方案。
我特别寻找Type
,而不是类型的实例,我也不想依赖于创建一个实例只是为了检查它的类型。
有两种方法:
1)你需要使用反射或表达式树来调用该方法,因为它是受保护的。GetContainerForItemOverride()将返回一个DependencyObject,然后你可以对它使用GetType()。