我已经看过使用TreeListView的可能性,但它不适合我的用例,也没有绑定单独的控件并以这种方式显示数据。
有没有人经历过将ListView夹在TreeViewItem中的头痛,或者有人建议如何修改ControlTemplate来实现这一目标?
谢谢你, AJ
答案 0 :(得分:0)
具有Listview的节点应该是与其他两个节点不同的数据类型,因此Treeview可以对其进行不同的处理。
另外,听起来包含列表视图数据的子项不应该是HierarchicalDataTemplate
而是常规DataTemplate
,因为它没有Treeview识别的其他子元素。您可以根据需要在Treeview中混合和匹配HierarchicalDataTemplate和常规DataTemplates,常规DataTemplates表示“叶子”节点,它们没有任何子节点。
使用Treeview中使用的不同数据类型但仍使用分层模板的示例:
<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>
答案 1 :(得分:0)
原来处理这种情况的最简单方法是用Expander替换第二个节点上的HierarchicalDataTemplate,在ListView而不是HierarchicalDataTemplate上设置ItemsSource,并将Expander上的按钮重新设置为类似于一个TreeViewItem .... sorta a hack但它有效:)
感谢所有帮助,
AJ