我有一个在窗口的DataContext中表示的视图模型。
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,它将向我展示学校,班级和学生。
我该怎么做?
谢谢!
答案 0 :(得分:4)
您需要为具有父子关系的对象树的每个级别创建HeirarchicalDataTemplates,并为叶节点添加简单的DataTemplate。
你的对象树应该是学校 - &gt;类 - &gt;学生
班级学校有一个
List<Class>
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>