2008-10-30 33 views

Trả lời

12

Tôi nghĩ cách tiếp cận tốt nhất là đặt Kiểu trên TreeView sẽ thay đổi Mẫu của TreeViewItems để có Hình ảnh mà bạn muốn.

Mẫu có thể sẽ cần phải là một StackPanel có điều khiển hình ảnh và nhãn, bạn ràng buộc hình ảnh vào biểu tượng của bạn và văn bản nhãn cho các chuỗi từ bộ sưu tập có thể quan sát.

Tôi đã sao chép đoạn mã có liên quan từ Code Project article, bao gồm chi tiết hơn, nhưng tôi nghĩ dưới đây là tất cả những gì bạn cần (Mã này đi vào phần tử 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> 
+2

Đây là một biểu tượng cho tất cả các nút. Làm thế nào để liên kết các biểu tượng khác nhau cho các cấp độ khác nhau của treenodes? – newman

+2

Sử dụng giá trị ràng buộc cho nguồn – JeremyK

10

tôi đã sử dụng James Osborn 's StackPanel technique theo cách này ...

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> 
Các vấn đề liên quan