Wpf Treeview绑定基于项目文件夹结构

时间:2011-01-31 19:44:24

标签: wpf treeview binding treeviewitem

我目前有一个文件目录,我想在我的项目中读入我的程序。 结构

Project
   - Properties
   - References
   - Manufacturers (want to project this as treeview)
      - Honda
         - file1
         - file2
      - Toyota
         - file1
         - file2

在我的程序中,上面的每个文件都由它自己的业务对象表示。 我希望能够在我的程序中在我的树视图中有这个。

- Honda
     - file1
     - file2
- Toyota
     - file1
     - file2

我只加载这些文件一次所以我想只读一次这些文件并将它们绑定到树视图。是否有一种优雅的方式来做到这一点???

谢谢, 千电子伏

1 个答案:

答案 0 :(得分:1)

您可以使用HierarchicalDataTemplate

<toolkit:HierarchicalDataTemplate x:Key="FileTemplate" >
       <TextBlock Text="{Binding Path=FileName}" />
</toolkit:HierarchicalDataTemplate>
<toolkit:HierarchicalDataTemplate x:Key="ManufacturerTemplate" 
        ItemsSource="{Binding Path=Files}" 
        ItemTemplate="{StaticResource FileTemplate}">
        <TextBlock Text="{Binding Path=Name}"/>
</toolkit:HierarchicalDataTemplate>

<toolkit:TreeView ItemsSource="{Binding}" 
    ItemTemplate="{StaticResource ManufacturerTemplate}"/>

您的业务对象可能看起来像这样......

class Manufacturer
{
     String Name {get; set;}
     ObservableCollection<File> Files {get; set;}

}

class File
{
     String FileName {get; set;}
}

然后,您可以将DataContext的{​​{1}}设置为TreeView