带有HierarchicaldataTemplate的WPF Treeview - 不显示最低项目

时间:2010-11-08 00:57:17

标签: wpf treeview

我有一个带有HierarchicalDataTemplate的WPF TreeView。当我下降层次结构,扩展节点时,我最终会到达底部并通过普通的DataTemplate显示数据。 我不想显示那些节点 - 如果我将包含TextBlock的DataTemplate设置为Visible Hidden(或类似),我只需在树视图中获得分配的空间。我不想显示这些项目,所以假设我需要以某种方式删除它们。我不能在CollectionView上使用Filter,因为在此级别可能有其他节点包含子节点。所以基本上,在任何级别我都想删除那些没有子节点的节点。实际数据是通过XmlDataProvider从Xml文件加载的,因此没有类对象。 任何人都可以建议如何

感谢 约翰

1 个答案:

答案 0 :(得分:0)

大概是你问这个问题,因为树中的最后一个节点属于同一类型,所以你只使用一个HierarchicalDataTemplate:

<HierarchicalDataTemplate DataType="{x:Type src:MyNodeClass}" ItemsSource = "{Binding Path=Items}">
  <TextBlock Text="{Binding Path=PropertyToDisplay}"/>
</HierarchicalDataTemplate>

如果您可以更改最后一个节点的类型,他们将不会自动使用该模板(您也可以继承正常类型,因此即使新类实际上是空的,集合也允许它们。)