2012-09-21 22 views
5

बस wpf से शुरू हो रहा है। मैं treeview को वस्तु (श्रेणीबद्ध) फ़ोल्डरडब्ल्यूपीएफ ट्री व्यू पदानुक्रमित बाध्यकारी।

public class Folder 
{ 
    public Folder() 
    { 
     this.Name = string.Empty; 
     this.Modules = new ObservableCollection<Module>(); 
     this.Folders = new List<Folder>(); 
     this.HasChild = false; 
    } 

    public Folder(Folder parent) 
    { 
     this.Name = string.Empty; 
     this.Modules = new ObservableCollection<Module>(); 
     this.Folders = new List<Folder>(); 
     this.HasChild = false; 
     this.Parent = parent; 
    } 

    public bool HasChild { get; set; } 

    public string Name { get; set; } 

    public List<Folder> Folders { get; set; } 

    public ObservableCollection<Module> Modules { get; set; } 

    public Folder Parent { get; set; } 

    public Folder IfItemExists(string name) 
    { 
     foreach (Folder folder in Folders) 
     { 
      if (folder.Name == name) 
      { 
       return folder; 
      } 
     } 

     return null; 
    } 
} 

बाध्य करने के लिए की जरूरत है। मैं ऐसा कर रहा हूं

<TreeView Name="treeView" Margin="5"> 
     <TreeView.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Path=Folders}" DataType="{x:Type ModulesUpToDateChecker:Folder}"> 
       <HierarchicalDataTemplate.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=Name}"></TextBlock> 
        </DataTemplate> 
       </HierarchicalDataTemplate.ItemTemplate> 
      </HierarchicalDataTemplate> 
     </TreeView.ItemTemplate> 
    </TreeView> 

और बस खाली डोकपनेल है। ऑब्जेक्ट भरा हुआ है। एशे बच्चे के पास एक ही प्रकार के बच्चे हैं।

उत्तर

4

एक पदानुक्रमित डेटा टेम्पलेट पहले से ही डेटा टेम्पलेट है (यह इससे प्राप्त होता है)। तो बस इतना की तरह अपने HierarchicalDataTemplate अंदर ItemTemplate और DataTemplate सामान छोड़:

<TreeView Name="treeView" Margin="5"> 
    <TreeView.Resources> 
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Folders}" DataType="{x:Type WpfApplication220:Folder}"> 
     <TextBlock Text="{Binding Path=Name}"></TextBlock> 
    </HierarchicalDataTemplate> 
    </TreeView.Resources> 
</TreeView> 

ओह और आप या तो अपने treeview की ItemsSource सेट करने के लिए प्रोग्राम के रूप में या अपने मार्कअप में .. ऐसा करने के लिए

treeView.ItemsSource = ..yourFolderList.. 
3

कोशिश यह:

<TreeView Name="treeView" Margin="5"> 
    <TreeView.ItemTemplate> 
     <HierarchicalDataTemplate ItemsSource="{Binding Path=Folders}" DataType="x:Type ModulesUpToDateChecker:Folder}"> 
      <Grid> 
      <TextBlock Text="{Binding Path=Name}"></TextBlock> 
      </Grid> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView>