2011-09-27 32 views
5

Necesito un control que se comporta como una vista de árbol (se vincula a una estructura de árbol, expande nodos secundarios según la propiedad IsExpanded del objeto enlazado) y muestra datos como la cuadrícula (sin sangría o alternar imágenes)cómo aplanar un WPF TreeView

El colapso de expansión se producirá automáticamente en función del objeto encuadernado.

TreeView es perfecto, solo necesito quitar la hendidura y la imagen del triángulo para que quede verticalmente plano, como una columna de cuadrícula.

supongo que podría intentar anular la plantilla TreeViewItem, pero eso no muestra nada ..

Respuesta

2

Sobre la base de la TreeView style on MSDN, algo como esto debería funcionar:

<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

gracias, jugaré con plantillas de control! –

+0

funcionó como un encanto. usted señor es un caballero! –

2

Se necesita un TreeListView (que combina la TreeView y ListView en TreeViewItem nivel de plantilla muy bien)

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

+0

¡Salud, esto es exactamente lo que estaba buscando! El enlace que tiene es correcto, ¡pero MSDN no enlaza con el código real! El código se puede encontrar aquí (http://archive.msdn.microsoft.com/wpfsamples) –