C# HierarchycalDataTemplate没有';不显示没有子项的项目

C# HierarchycalDataTemplate没有';不显示没有子项的项目,c#,wpf,treeview,hierarchicaldatatemplate,C#,Wpf,Treeview,Hierarchicaldatatemplate,在上一篇文章中,我想知道如何为TreeView设置hierarchycaldatatemplate。这很好用。我现在的问题是: 班级classstudiors看起来像: public class ClassPupils { public ClassPupils(Class @class) { this.Class = @class; this.Pupils = new List<Pupil>(); } public Class Cl

在上一篇文章中,我想知道如何为
TreeView
设置
hierarchycaldatatemplate
。这很好用。我现在的问题是:

班级
classstudiors
看起来像:

public class ClassPupils
{

   public ClassPupils(Class @class)
   {
      this.Class = @class;
      this.Pupils = new List<Pupil>();
   }

   public Class Class { get; set; }
   public List<Pupil> Pupils { get; set; }
}
公共班级学生
{
公立班学生(班级@班级)
{
this.Class=@Class;
this.studios=新列表();
}
公共类{get;set;}
公共列表{get;set;}
}
在我的ViewModel中,我有一个
可观察集合
,树视图绑定到该集合


如果
类瞳孔
在瞳孔集合中没有瞳孔,则不显示该项目。我不明白为什么?我还需要显示学生集合中没有学生的班级学生。

您的数据模型不正确。我们在代码中的数据模型通常不完全遵循我们的数据库结构,尤其是当数据是分层的。。。请记住,我们的表是标准化的,而在代码中这样做没有任何好处。因此,您的数据库表可能在子表中具有类的外键Id,但在业务模型中,这通常被实现为具有子类集合的父类。因此,在您的情况下,您的父类应该更像这样:

public class SchoolClass
{
    public SchoolClass(List<Pupil> pupils)
    {
        this.Pupils = pupils;
    }

    public List<Pupil> Pupils { get; set; }

    ...
}
公共课堂
{
公立学校班级(列出学生名单)
{
这个。学生=学生;
}
公共列表{get;set;}
...
}

不需要在代码中定义“弱实体”或“连接表”。您以前的问题是,您的家长
学校班级
班级没有
学生的集合,现在有了,请再次尝试
Hierarchy datatemplate

发布您的数据模板和树xaml。这意味着学生班级不知道自己的班级。但是这个班有一群学生吗?不,这意味着在代码中,没有所谓的
PupilClass
。。。这只存在于数据库模型中。