-2

给定一个任意的ItemsControl,是否可以获得它ItemContainerGenerator创建/使用的容器对象的类型?

例如,给定 a ListBox,我正在尝试获取 type ListBoxItem。对于 a TreeView,它将是TreeViewItem等。

我正在尝试为任何ItemsControl(或更准确地说,任何使用ItemContainerGenerator.)的控件找到通用解决方案

我专门寻找Type,而不是类型的实例,我也不想依赖创建实例来检查它的类型。

4

1 回答 1

0

有两种方法:)

1)您需要使用反射或表达式树来调用该方法,因为它是受保护的。GetContainerForItemOverride() 将返回一个 DependencyObject,然后您可以在其上使用 GetType()。

2) 或者您可以调用类似 treeView.ItemContainerGenerator.ContainerFromIndex(0) 的方法来获取第 0 项的容器,但这只有在树(或控件)中至少有一个项时才有效。

于 2015-10-01T18:39:56.170 回答