简体   繁体   English

TreeView ItemTemplate

[英]TreeView ItemTemplate

I have a static TreeView where all items are added in the XAML like: 我有一个静态TreeView ,其中所有项目都添加到XAML中,例如:

<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 . 所以我没有ItemsSource Now I want to add Images to my TreeViewItems with a Style. 现在,我想使用样式将图像添加到TreeViewItems 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. 不使用StackPanel

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? 我做错了什么?

Add this style in your Window.Resources. 在您的Window.Resources中添加此样式。 Remove the ItemTemplate you defined as that will not be applied to the TreeViewItem you have added in xaml. 删除您定义的ItemTemplate,因为它将不会应用于您在xaml中添加的TreeViewItem。

   <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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM