WPF 层次数据模板

3

有人能解释一下HierarchicalDataTemplate是如何工作的吗?

  • 哪些控件支持HierarchicalDataTemplate?
  • 一个控件需要什么来支持HierarchicalDataTemplate?

更新

  • 为什么在HeaderedItemsControl中使用相同的HierarchicalDataTemplate只会导致渲染父节点,而TreeView会渲染父节点和子节点?
2个回答

3

什么控件支持HierarchicalDataTemplate?

所有继承自HeaderedItemsControl的控件,例如TreeViewItemMenuItem

一个控件需要支持HierarchicalDataTemplate,需要满足什么要求?

继承自HeaderedItemsControl应该足够了。


1

这种控制需要是HeaderedItemsControl类型或其派生类型。当前框架控件包括MenuItem、ToolBar和TreeViewItem。

HeaderedItemsControl重写了PrepareContainerForItemOverride方法,并在该调用路径的某个位置检查HierarchicalDataTemplate。


那么,为什么在HeaderedItemsControl中使用相同的HierarchicalDataTemplate只会导致父节点被渲染,而TreeView却会渲染父节点和子节点呢? - thmsn
2
DataTemplate不会“导致”父级被渲染。HierarchicalDataTemplate具有一个ItemsSource属性,该属性在代码中自动应用于HeaderedItemsControl的ItemsSource。否则它就像一个普通的ItemScontrol。 - Kenan E. K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接