2013-07-18 67 views
3

2級我有一個窗口的DataContext的代表視圖模型。設置的TreeView HierarchicalDataTemplate在WPF

public class SchoolViewModel:ViewModelBase 
{ 
     public ObservableCollection<SchoolClassGroup> ClassesCollection { get; set; } 
      ....    
} 


public class SchooleClassGroup:ViewModelBase 
{ 
    public string ClassName {get;set;} 
    public string TeacherName {get;set;} 
    public ObservableCollection<Students> StudentCollection{ get; set; } 

} 

public class Student 
{ 
    public string Name {get;set;} 
    public int Age {get;set;} 
    public DateTime BirthDate {get;set;} 
    ... 
} 

我想表示TreeView,它會向我展示學校,班級和學生。

我該怎麼辦?

謝謝!

回答

4

您需要爲您的對象樹的每個級別具有父子關係,再加上簡單的DataTemplate的葉子節點創建HeirarchicalDataTemplates。

你的對象樹應該是學校 - >類 - >學生

類學校有一個

List<Class> 

Class類有一個

List<Student> 

然後,它的簡單

<Window.Resources> 

     <HierarchicalDataTemplate ItemsSource="{Binding Classes}" DataType="{x:Type School}"> 
      <TextBlock Text="{Binding Name}" /> 
     </HierarchicalDataTemplate> 

     <HierarchicalDataTemplate ItemsSource="{Binding Students}" DataType="{x:Type Class}"> 
      <TextBlock Text="{Binding Name}" /> 
     </HierarchicalDataTemplate> 

     <DataTemplate DataType="{x:Type Student}"> 
      <TextBlock Text="{Binding Name}" /> 
     </DataTemplate > 

    </Window.Resources> 

    <Grid> 
     <TreeView ItemsSource="{Binding Schools}" > 
    </Grid> 
相關問題