C# 如何正确绑定到具有继承的类

C# 如何正确绑定到具有继承的类,c#,xaml,inheritance,uwp,uwp-xaml,C#,Xaml,Inheritance,Uwp,Uwp Xaml,我有一个树景。在树上我有学生作业 家庭作业是一门很有趣的课,所以在家庭作业下我有->科学,物理,数学 我如何创建绑定到家庭作业列表但根据“子”细节而改变的XAML 我被阻止了,因为我不知道如何进行绑定 class Student { public string Name; List<Homework> homeworks; } class Homework { public DateTime Date;

我有一个树景。在树上我有学生作业 家庭作业是一门很有趣的课,所以在家庭作业下我有->科学,物理,数学 我如何创建绑定到家庭作业列表但根据“子”细节而改变的XAML

我被阻止了,因为我不知道如何进行绑定

class Student
    {
        public string Name;
        List<Homework> homeworks;
    }

class Homework
    {
        public DateTime Date;
        public int Vote;
    }
class ScienceH : Homework
    {
        public string Topic;
    }
class PhysicsH : Homework
    {
        public int Points;
    }
班级学生
{
公共字符串名称;
列出家庭作业;
}
课堂作业
{
公共日期时间日期;
公众投票;
}
课堂科学:家庭作业
{
公共字符串主题;
}
课堂物理:家庭作业
{
公共积分;
}

我希望有一个显示附加字段的项目,具体取决于它们所拥有的子项。您可以在UWP XAML中定义一个
TreeView
,如下所示:


然后,您需要为希望显示的每个类定义一个
DataTemplate
。将此添加到
TreeView
XAML中:


您还可以阅读有关
DataTemplate
类的更多信息

注意,正如注释中所建议的,您需要在类中实现更改通知以确保正确绑定。这些都很详细


或者,您似乎有一个具有已知固定深度的树结构的
TreeView
:深度0将是
Student
的列表,深度1将是
家庭作业的列表,因此您也可以不使用
TreeView
,只需在彼此之间嵌套两个
ItemsControl
,您的属性缺少更改通知。至于用户界面,我喜欢为此设置类型目标数据模板。大约6年前,我写了一篇介绍MVVM的文章,这应该会让你了解最新情况。正确,我需要定义IList并引发属性更改。我的问题更多的是如何使用XAML进行绑定。我需要这一点,因为我对Xaml不是很好。太棒了,听起来很好!事实上,我有更多的级别低于这一级别,这就是为什么我要找一个树状视图:)你可能应该在接受答案之前尝试一下:呵呵,你的意思是它不起作用???呵呵呵呵,我想它会起作用的,如果我被卡住了,我会带着真实完整的代码回来:)。非常感谢您的帮助,我从未做过UWP,也没有尝试过我的代码,所以我不确定。但我可以根据需要编辑。我更喜欢WPF,很高兴看到我不是唯一一个看到针对ViewModel类型的模板强大功能的人:)