2014-06-05 40 views
0

我有一個靜態TreeView,所有項目在XAML增加,如:TreeView控件的ItemTemplate

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

所以我沒有一個ItemsSource做。現在我想用Style添加圖像到我的TreeViewItems。因此我使用:

<TreeView.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal"> 
      <Image Width="16" Height="16"></Image> 
      <Label Content="???"/> 
     </StackPanel> 
    </DataTemplate> 
</TreeView.ItemTemplate> 

不幸的是,這是行不通的。沒有使用StackPanel

我也試過:

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

這也沒有做什麼,我希望它做的事。

我做錯了什麼?

回答

1

將此樣式添加到您的Window.Resources中。刪除您定義的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>