База привязок Wpf Treeview на структуре папок проекта - PullRequest
0 голосов
/ 31 января 2011

В настоящее время у меня есть каталог файлов, которые я хочу прочитать в моей программе в моем проекте. Структура.

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

В моей программе каждый файл выше представлен своим бизнес-объектом. Я хочу, чтобы в моей программе это было в виде дерева.

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

Я загружаю эти файлы только один раз, поэтому хочу просто прочитать их один раз и привязать их к древовидной структуре Есть ли элегантный способ сделать это ???

Спасибо, Кев

1 Ответ

1 голос
/ 31 января 2011

Вы можете использовать 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 из TreeView на ObservableCollection<Manufacturer>

...