Domanda

Hey guys, Ho un TreeView WPF che ha tre nodi, vorrei l'ultimo figlio (il terzo nodo) per contenere un ListView popolato con il mio dati associati. Il problema che sto correndo in è che se metto un controllo ListView in ItemTemplate della mia HierarchicalDataTemplate ottengo un controllo ListView per ogni bambino, piuttosto che un singolo ListView con il contenuto. Questo è il comportamento previsto per la documentazione, ma sto cercando un lavoro in giro (eventualmente modificare l'ItemContainerStyle), purtroppo non ho praticamente alcuna esperienza con modello di controllo del TreeViewItem, o per quella materia molta esperienza con TreeViews in generale.

Ho guardato la possibilita 'di utilizzare un TreeListView ma non va bene per il mio caso d'uso, né vincolante un controllo separato e la visualizzazione dei dati in questo modo.

Qualcuno sia già passato attraverso il mal di testa di sandwich un ListView in un TreeViewItem, o qualcuno può suggerire come modificare il ControlTemplate per raggiungere questo obiettivo?

Grazie, Aj

È stato utile?

Soluzione 2

Si scopre che il modo più semplice per affrontare la situazione è quello di sostituire il HierarchicalDataTemplate sul secondo nodo con un expander, impostare l'ItemsSource sul ListView piuttosto che il HierarchicalDataTemplate, e restyling il pulsante sul Expander a guardare come quello da un TreeViewItem sorta .... un hack, ma funziona:)

Grazie per tutto l'aiuto,

Aj

Altri suggerimenti

Il nodo che ha il Listview dovrebbe essere di tipo diverso rispetto agli altri due nodi in modo che possa essere gestita in modo diverso dalla Treeview. Inoltre suona come il bambino che contiene i dati di visualizzazione elenco non dovrebbe essere in un HierarchicalDataTemplate ma un regolare DataTemplate uno, dal momento che non ha altri elementi figli riconosciuti dalla TreeView. È possibile combinare HierarchicalDataTemplate e DataTemplates regolari in una vista ad albero, come si vede in forma, DataTemplates regolari rappresentano i nodi "foglia", non hanno figli.

campione con diversi tipi di dati utilizzati in TreeView, ma ancora utilizzando i modelli gerarchici:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top