2011-09-27 24 views
5

我需要一个类似于树视图的控件(绑定到树结构,根据绑定对象的IsExpanded属性展开子节点),并显示类似网格的数据(不缩进或切换图像)。如何拼合WPF TreeView

展开折叠将基于绑定对象自动发生。

TreeView是完美的,我只需要删除缩进和三角形图像,使其垂直平坦,就像网格列。

我想我可以尝试重写树型视图模板,但只是不显示任何东西..

回答

2

基础上TreeView style on MSDN,这样的事情应该工作:

<Style TargetType="TreeViewItem"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="TreeViewItem"> 
       <StackPanel> 
        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="ExpansionStates"> 
          <VisualState x:Name="Expanded"> 
           <Storyboard> 
            <ObjectAnimationUsingKeyFrames 
             Storyboard.TargetProperty="(UIElement.Visibility)" 
             Storyboard.TargetName="ItemsHost"> 
             <DiscreteObjectKeyFrame KeyTime="0" 
              Value="{x:Static Visibility.Visible}" /> 
            </ObjectAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Collapsed" /> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
        <ContentPresenter ContentSource="Header" /> 
        <ItemsPresenter Name="ItemsHost" Visibility="Collapsed" /> 
       </StackPanel> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

谢谢,我会玩控制模板! –

+0

像一个魅力工作。你先生是个绅士! –

2

你需要一个TreeListView (它结合了TreeViewListView在树型视图模板级别精美)

http://msdn.microsoft.com/en-us/library/ms771523.aspx

+0

干杯,这正是我正在寻找!你有的链接是正确的,但MSDN没有链接到实际的代码!代码可以在这里找到(http://archive.msdn.microsoft.com/wpfsamples) –