2011-01-31 21 views
0

私のプロジェクトで私のプログラムに読みたいファイルのカタログがあります。 構造体。Wpfプロジェクトのフォルダ構造上のツリービューバインドベース

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

私のプログラムでは、上記の各ファイルは、それぞれのビジネスオブジェクトによって表されています。 私は私のプログラムでこれを私のtreeviewに持っていたいと思っています。

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

これらのファイルは一度だけロードされるので、これらのファイルを一度読み込んでツリービューにバインドします。これを行うエレガントな方法はありますか?

おかげで、 ケヴ

答えて

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を設定しますTreeViewObservableCollection<Manufacturer>

+0

ありがとう、私はちょうど質問がありますが、FileTemplateはどこで使用されていますか、第2に、これは私のビジネスオブジェクトにフォルダ名 "Manufacturer"を格納しなければならないということですか? – Kev84

+0

FileTemplateに関して@ Kev84 Typoが修正されました...サンプルビジネスオブジェクト –

+0

が追加されました。メーカーのビジネスオブジェクトを追加せずにFileとPathNameを使用する方法がありますか? – Kev84

関連する問題