在WPF中将TreeView HierarchyDataTemplate设置为2个级别
我有一个在窗口的DataContext中表示的视图模型在WPF中将TreeView HierarchyDataTemplate设置为2个级别,wpf,mvvm,treeview,Wpf,Mvvm,Treeview,我有一个在窗口的DataContext中表示的视图模型 public class SchoolViewModel:ViewModelBase { public ObservableCollection<SchoolClassGroup> ClassesCollection { get; set; } .... } public class SchooleClassGroup:ViewModelBase {
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;}
...
}
公共类SchoolViewModel:ViewModelBase
{
公共ObservableCollection类集合{get;set;}
....
}
公立学校类别类别组:ViewModelBase
{
公共字符串类名{get;set;}
公共字符串教学器名称{get;set;}
公共可观察集合StudentCollection{get;set;}
}
公立班学生
{
公共字符串名称{get;set;}
公共整数{get;set;}
公共日期时间出生日期{get;set;}
...
}
我想代表一个树视图,向我展示学校、班级和学生
我怎么做
谢谢 您需要为具有父子关系的对象树的每个级别创建HierarchicalDataTemplates,并为叶节点创建一个简单的DataTemplate 您的对象树应该是School->Class->Student 学校有一个班级
List<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>