大家好,我有一个有三个节点的WPF Treeview,我希望最后一个孩子(第三个节点)包含一个带有绑定数据的列表视图。我遇到的问题是,如果我将listView放在我的eStemplate中,我将获得每个孩子的listView,而不是带有内容的单个listView。这是根据文档预期的行为,但是我正在寻找围绕(可能修改ItemContainerStyle)的工作,不幸的是,我实际上没有对TreeViewItem的控制模板的经验,或者对于这一大事的经验,我对TreeViews contery conviews consecteds contery of the The Control tyem ty ackity。

我研究了使用TreeListView的作用,但它不符合我的用例,也不适合以这种方式绑定单独的控件并显示数据。

是否有人已经遇到了将ListView夹在TreeViewItem中的头痛的头痛,或者有人可以建议如何修改ControlTemplate以实现这一目标?

谢谢,AJ

有帮助吗?

解决方案 2

事实证明,处理这种情况的最简单方法是用expander替换第二个节点上的层次数字板,将listView上的itempssource设置为exterssource,而不是层次结构datatemplate,然后在explander上restyle retyle the explander上的按钮,看起来像从树视图中的一个。 ...有点hack,但有效:)

感谢您的帮助,

AJ

其他提示

具有ListView的节点应该是与其他两个节点不同的数据类型,因此TreeView可以对其进行不同的处理。另外,听起来包含列表视图数据的孩子不应在 HierarchicalDataTemplate 但是是常规的 DataTemplate 一个,因为它没有树景识别的其他子元素。您可以在树视图中混合和匹配层次数字板和常规数据模板,如您所见,常规数据模板代表“ Leaf”节点,它们没有任何孩子。

示例具有树景中使用的不同数据类型,但仍使用层次模板:

<HierarchicalDataTemplate DataType="{x:Type FooNormal}" ItemsSource="{Binding TreeviewChildNodeCollection}">
   // do something else here.
</HierarchicalDataTemplate>

<HierarchicalDataTemplate DataType="{x:Type FooList}" ItemsSource="{Binding TreeviewChildNodeCollection}">
  <ListView  ItemsSource="{Binding ListviewChildNodeCollection}">
   //use listview here
  </ListView>
</HierarchicalDataTemplate>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top