Reputation: 9394
I have a static TreeView
where all items are added in the XAML like:
<TreeView>
<TreeViewItem Header="Pages">
<TreeViewItem Header="Google"/>
<TreeViewItem Header="Stackoverflow"/>
</TreeViewItem>
<TreeViewItem Header="Stuff">
<TreeViewItem Header="MyDomain"/>
<TreeViewItem Header="Other Domains">
<TreeViewItem Header="Domain 1"/>
<TreeViewItem Header="Domain 2"/>
<TreeViewItem Header="Domain 3"/>
</TreeViewItem>
</TreeViewItem>
</TreeView>
So I don't have an ItemsSource
. Now I want to add Images to my TreeViewItems
with a Style. Therefor I use:
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16"></Image>
<Label Content="???"/>
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>
Unfortunately this doesn't work. The StackPanel
is not used.
I also tried:
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="TreeViewItem.Header">
<Setter.Value>
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16"/>
<Label Content="???"/>
</StackPanel>
</Setter.Value>
</Setter>
</Style>
</TreeView.Resources>
This also doesn't do what I expect it to do.
What I am doing wrong?
Upvotes: 0
Views: 639
Reputation: 18578
Add this style in your Window.Resources. Remove the ItemTemplate you defined as that will not be applied to the TreeViewItem you have added in xaml.
<Style TargetType="TreeViewItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<Image Width="16" Height="16"/>
<Label Content="{TemplateBinding Content}"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Upvotes: 1