2012-01-26 29 views
0

我有一些分层数据,我需要显示为一个表,我可以更改TreeView的样式以类似列表的方式显示数据?是可以使TreeView看起来像一个列表?

所以不是:

+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,但我不知道从哪里开始,我也找不到这方面的任何信息。

注释:Can I have a Treeview without the tree structure?

+0

所以基本上你想要完全展平层次结构?或者你想为不同级别的层次结构提供不同的样式? –

+0

是的我想要扁平化层次结构 –

+1

可能重复的[我可以有没有树结构的TreeView?](http://stackoverflow.com/questions/1526925/can-i-have-a-treeview-without-the -tree-structure) –

回答

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> 
+0

非常感谢你! –

相关问题