我有一个在窗口的 DataContext 中表示的 View 模型。
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,它将向我展示学校、类(class)和学生。
我该怎么做?
谢谢!
最佳答案
您需要为具有父子关系的对象树的每个级别创建 HeirarchicalDataTemplate,并为叶节点创建一个简单的 DataTemplate。
你的对象树应该是 School -> Class -> Student
类(class)学校有一个
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>
关于wpf - 在 WPF 中设置具有 2 个级别的 TreeView HierarchicalDataTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17726445/