0
我有一个叫ClassWithPupils
类,它看起来像:分层的数据绑定的TreeView
public class ClassWithPupils : ViewModelBase
{
public ClassWithPupils(IClass @class)
{
Class = @class;
Pupils = new ObservableCollection<IPupil>();
}
public IClass Class
{
get { return Get<IClass>(); }
set { Set(value); }
}
public ObservableCollection<IPupil> Pupils
{
get { return Get<ObservableCollection<IPupil>>(); }
set { Set(value); }
}
}
而且我有一个视图模型包含了ObservableCollection<ClassWithPupils>
。
private ObservableCollection<ClassWithPupils> classesWithPupils;
public ObservableCollection<ClassWithPupils> ClassesWithPupils
{
get { return classesWithPupils ?? (classesWithPupils = new ObservableCollection<ClassWithPupils>()); }
}
该集合填充正确的数据库项目。
现在我想要在TreeView
中显示ClassesWithPupils层次结构中的所有项目。
我查看到目前为止是这样的:
<TreeView ItemsSource="{Binding ClassesWithPupils, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding}">
<Label Content="{Binding Class.Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
因此类名称显示正确。
不幸的是,我不知道如何将每个ClassWithPupils-Entry的学生集合绑定到TreeView中的正确项目上作为子项。
我想是这样的:
<TreeView ItemsSource="{Binding ClassesWithPupils, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding}">
<Label Content="{Binding Class.Name}"/>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Pupils}">
<Label Content="{Binding Name}"/>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
没有成功...
所以我的问题是:我怎么能显示学生的姓名作为树视图类的孩子呢?
看起来不错。我怎样才能显示在父元素的类名? – Tomtom
也许你可以打印显示你的树形图的外观,也许你可以指定更多的细节,你想要在哪里出现类的名字? –
不幸的是我无法打印屏幕。我的树现在有两个根节点,每个节点有两个孩子。儿童的名称显示正确,但根节点为空 – Tomtom