我有一个名为sz
的课程,如下所示:
SELECT .... FROM FLATTEN(FLATTEN(GA_SESSION,customDimensions),hits.customDimensions)
我有一个包含ClassWithPupils
的ViewModel。
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>
中显示ClassesWithPupils层次结构中的所有项目。
我的观点到目前为止看起来像:
private ObservableCollection<ClassWithPupils> classesWithPupils;
public ObservableCollection<ClassWithPupils> ClassesWithPupils
{
get { return classesWithPupils ?? (classesWithPupils = new ObservableCollection<ClassWithPupils>()); }
}
所以Class-Names显示正确。
不幸的是,我不知道如何将每个ClassWithPupils-Entry的Pupils-Collection绑定到TreeView中的正确项目作为子项。
我尝试过类似的事情:
TreeView
没有成功......
所以我的问题是:如何在TreeView中将类的名称显示为类的子项?
答案 0 :(得分:1)
在查看你的代码后,我发现绑定中只有一个错误,这可能导致所描述的问题,你应该绑定到分层模板中的Pupils,如下所示:
<TreeView ItemsSource="{Binding ClassesWithPupils, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Pupils}">
<Label Content="{Binding Class.Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>