Ich habe eine WPF TreeView mit nur 1 Ebene von Elementen. Die TreeView ist Daten, die an eine ObservableCollection von Zeichenfolgen gebunden sind. Wie kann ich sicherstellen, dass das gleiche Symbol links von jedem Knoten in der TreeView angezeigt wird?Wie füge ich Symbole neben den Knoten in einem WPF-TreeView hinzu?
Antwort
Ich denke, der beste Ansatz besteht darin, einen Style auf der TreeView zu setzen, der die Template der TreeViewItems so verändern wird, dass sie das gewünschte Image hat.
Die Vorlage muss wahrscheinlich ein StackPanel mit einem Bild- und einem Beschriftungssteuerelement sein, Sie binden das Bild an Ihr Symbol und den Beschriftungstext an die Zeichenfolgen aus der Observable-Sammlung.
Ich habe das entsprechende Code-Snippet aus einer Code Project article kopiert, die dies ausführlicher behandelt, aber ich denke, das Folgende ist alles was Sie brauchen (Dieser Code wird in das Element TreeView.Resources).
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Name="img"
Width="20"
Height="20"
Stretch="Fill"
Source="image.png"/>
<TextBlock Text="{Binding}" Margin="5,0" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Ich glaube, einer der besten Artikel, die Sie die TreeView ist dies eine http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx verstehen helfen. Im Allgemeinen beschreibt dies eine gute Menge von Mustern, die viele Szenarien in WPF/SL viel einfacher machen können.
I verwendet James Osborn ‚s StackPanel technique auf diese Weise ...
XAML:
<TreeView Name="TreeViewThings" ItemsSource="{Binding}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Thing}"
ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" Margin="2">
<Image Source="Thing.png"
Width="16"
Height="16"
SnapsToDevicePixels="True"/>
<TextBlock Text="{Binding Path=Name}" Margin="5,0"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
- 1. Wie füge ich den zweiten Knoten in NosDB opensource hinzu?
- 2. Wie füge ich Text neben Bild in jtable hinzu?
- 3. Wie füge ich einen Knoten zu einem Mnesia-Cluster hinzu?
- 4. Wie füge ich View neben Tableviewcell mit Swift hinzu?
- 5. Wie füge ich einem Buchstaben Akzente hinzu?
- 6. Wie füge ich ein Kind zu einem Knoten in einem TreePanel hinzu?
- 7. Wie füge ich zu einem wstring hinzu?
- 8. Wie füge ich Felder von referenzierten Knoten hinzu drupal 8
- 9. Wie füge ich Werte von mehreren Knoten aus XSLT hinzu?
- 10. Wie füge ich Ausdrücke zu den Bezeichnungen in facet_wrap hinzu?
- 11. IN DEN WARENKORB - Wie füge ich ein Schlüsselwertpaar hinzu? Php
- 12. Wie füge ich datetimepicker hinzu und füge zweiten hinzu?
- 13. Wie füge ich einem Bild in iOS Swift Text hinzu?
- 14. Wie füge ich Elemente zu einem Array in jQuery hinzu?
- 15. Wie füge ich Text zu einem Bild in Java hinzu?
- 16. Wie füge ich Multithreading hinzu?
- 17. Wie füge ich den Kategorien in Woocommerce benutzerdefinierte Felder hinzu?
- 18. Wie füge ich Ränder zu UITextField in einem UIAlertController hinzu?
- 19. Wie füge ich Ordner in dat.gui hinzu?
- 20. SpriteKit Wie füge ich einen FixedJoint hinzu?
- 21. Wie füge ich ein Leerzeichen in einem XML-Schemaelement hinzu?
- 22. Wie füge ich `` `einem Eigenschaftsnamen in C# hinzu?
- 23. Wie füge ich eine Fußzeile in einem WPF-Datagrid hinzu?
- 24. Wie füge ich Text zu einem Kreisobjekt in fabricJS hinzu?
- 25. Wie füge ich APKs in einem AOSP Build hinzu?
- 26. Wie füge ich einem ChoiceField in Django eine "Klasse" hinzu?
- 27. Wie füge ich Datensätze zu einem DataGridView in VB.Net hinzu?
- 28. Wie füge ich einem Notebook in Beaker eine Sprache hinzu?
- 29. Wie füge ich Delegat zu einem Objekt in TableViewCell hinzu?
- 30. Wie füge ich hinzu wenn Bedingung in einem TensorFlow Diagramm?
Dies ist ein Symbol für alle Knoten. Wie verknüpfe ich verschiedene Icons für unterschiedliche Level von Treenodes? – newman
Verwenden Sie einen Bindungswert für die Quelle – JeremyK