我有一些需要显示为表格的分层数据,我可以更改TreeView的样式以类似List的方式显示数据吗?
所以代替:
+Group1
SubItem1
SubItem2
+Group2
+Group
SubItem11
SubItem12
我想要这个:
Group1
SubItem1
SubItem2
Group2
Group
SubItem11
SubItem12
我的代码如下所示:
<TreeView ItemsSource="{Binding RootItems}"
dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="true" />
</Style>
</TreeView.ItemContainerStyle>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type vm:CategoryViewModel}"
ItemsSource="{Binding Children}">
<v:Category DataContext="{Binding}" />
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type vm:ItemViewModel}">
<v:Item DataContext="{Binding}" />
</DataTemplate>
</TreeView.Resources>
</TreeView>
我知道我应该可以使用TreeView的样式,但我不知道从哪里开始,我找不到这方面的任何信息。
的副本答案 0 :(得分:3)
覆盖TreeViewItem
模板,例如
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<StackPanel>
<ContentPresenter x:Name="PART_Header" ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<ItemsPresenter />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TreeView.ItemContainerStyle>
答案 1 :(得分:1)
您需要覆盖default template of treeview
以展平您的层次结构。
这些链接可能符合您的目的 -
Can I have a Treeview without the tree structure?
http://social.msdn.microsoft.com/Forums/en/wpf/thread/a5ce0a21-d34b-4f9e-be03-ac4c56840ca5