Pregunta

Hola chicos, Tengo un TreeView WPF que tiene tres nodos, me gustaría que el último hijo (el tercer nodo) para contener un ListView poblada con mi datos enlazado. El problema que estoy corriendo en es que si pongo un ListView en el ItemTemplate de mi HierarchicalDataTemplate me da un ListView para cada niño en lugar de una sola ListView con el contenido. Este es el comportamiento esperado por la documentación, pero estoy buscando un trabajo en torno a (posiblemente modificar el ItemContainerStyle), lamentablemente no tengo prácticamente ninguna experiencia con la plantilla de control de la TreeViewItem, o para el caso mucha experiencia con TreeViews en general.

He mirado en la posibilidad de utilizar un TreeListView pero no se ajusta a mi caso de uso, ni unirse a un control independiente y la visualización de los datos de esa manera.

¿Alguien o bien ya pasado por el dolor de cabeza de intercalando un ListView en un TreeViewItem, o puede alguien sugerir cómo modificar la ControlTemplate para lograr esto?

Gracias, Aj

¿Fue útil?

Solución 2

resulta la forma más fácil para hacer frente a la situación es reemplazar el HierarchicalDataTemplate en el segundo nodo con un expansor, establecer el ItemsSource en el ListView en lugar de la HierarchicalDataTemplate, y cambiar el estilo del botón en el expansor para parecerse a la de un TreeViewItem .... sorta un truco, pero funciona:)

Gracias por toda la ayuda,

Aj

Otros consejos

El nodo que tiene el Listview debería ser un tipo de datos diferente de los otros dos nodos para que pueda ser manejado de manera diferente por el TreeView. También suena como el niño que contiene los datos de vista de lista no debe estar en una HierarchicalDataTemplate sino una DataTemplate regular, ya que no tiene otros elementos secundarios reconocidos por la vista de árbol. Usted puede mezclar y combinar HierarchicalDataTemplate y DataTemplates regulares en una vista de árbol como mejor le parezca, DataTemplates regulares representan los nodos "hoja", que no tienen hijos.

muestra con diferentes tipos de datos utilizados en Treeview pero todavía el uso de plantillas jerárquicas:

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top