2 Stimmen

ContentControl innerhalb eines WPF TreeView

Ich versuche, eine Inhaltssteuerung innerhalb eines Treeviews hinzuzufügen, aber wenn ich Treeview-Elemente innerhalb der Inhaltssteuerung hinzufüge, sind sie weiter von anderen Treeview-Elementen entfernt.

Der obige Code führt zu einem Treeview wie unten dargestellt.

XXX-1  
XXX-2  
  YYY-1  
XXX-3

Ich denke, dass die ContentControl automatisch ein weiteres TreeViewItem hinzufügt. Wie kann ich die TreeViewItems zusammen ausrichten?

2voto

Josh Punkte 2887

Ich würde mit Rachels Antwort beginnen, aber den ContentControl entfernen. Dies kann mit zwei DataTemplates und einem ItemTemplateSelector erreicht werden, der der ItemTemplateSelector-Eigenschaft des TreeViewItems zugewiesen ist.

Definieren Sie Ihre komplexen und einfachen Typen in zwei DataTemplates. Schreiben Sie dann eine Klasse, die von DataTemplateSelector erbt und bestimmt, ob der komplexe oder einfache Typ im TreeViewItem verwendet werden soll. Setzen Sie dann den ItemTemplateSelector des TreeViewItems auf das DataTemplateSelector-Objekt, das Sie gerade erstellt haben. Hier ist ein Beispiel: http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemtemplateselector.aspx.

Hier ist ein weiterer Link, der Ihnen zeigt, wie Sie ein DataTemplate basierend auf einer Bedingung auswählen können: http://msdn.microsoft.com/en-us/library/ms742521.aspx. Suchen Sie nach der Überschrift Auswählen eines DataTemplates basierend auf Eigenschaften des Datenobjekts.

0voto

Rachel Punkte 126340

Es verschachtelt den ContentControl in einem TreeViewItem (siehe Snoop Screenshot unten)

Snoop sagt mir auch, dass der zusätzliche Rand für den +/- Aufklapper ist, also müssen Sie wahrscheinlich die Vorlage überschreiben, um diesen Rand loszuwerden, wenn Sie Ihre TreeViewItems verschachteln möchten.

Bildbeschreibung hier eingeben

Natürlich, wenn Sie einfach versuchen, einen ContentControl innerhalb Ihres TreeViewItems zu platzieren, sollten die Tags andersherum sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X