gpt4 book ai didi

c# - TreeView 的分层数据模板

转载 作者:行者123 更新时间:2023-11-30 20:51:29 26 4
gpt4 key购买 nike

好的,我现在不明白。我在 google 和 Stackoverflow 上搜索了一段时间,看到了很多如何使用 HierarchicalDataTemplate 的例子。

我有一个类叫做 Class看起来像:

[Table(Name = "Class")]
public class Class
{
[Column(IsDbGenerated = true, IsPrimaryKey = true)]
public int Id { get; private set; }

[Column]
public string ClassName { get; set; }
}

我有一个类叫做 Pupil看起来像:

[Table(Name = "Pupil")]
public class Pupil
{
[Column(IsPrimaryKey = true, IsDbGenerated = true)]
public int Id { get; private set; }

public Name Name
{
get { return this.nameEntityRef.Entity; }
set
{
this.nameEntityRef.Entity = value;
this.NameId = value.Id;
}
}

public Address Address
{
get { return this.addressEntityRef.Entity; }
set
{
this.addressEntityRef.Entity = value;
this.AddressId = value.Id;
}
}

public Class Class
{
get { return this.classEntityRef.Entity; }
set
{
this.classEntityRef.Entity = value;
this.ClassId = value.Id;
}
}

private EntityRef<Name> nameEntityRef;
private EntityRef<Address> addressEntityRef;
private EntityRef<Class> classEntityRef;

[Column]
internal int AddressId { get; set; }

[Column]
internal int NameId { get; set; }

[Column]
internal int ClassId { get; set; }
}

然后我引入了一个名为 ClassPupils 的类看起来像

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; }
}

ClassPupils应该让所有学生都在一个类(class)。

现在我想创建一个 TreeView所有Pupil列在那里 Class .因此我使用 ObservableCollection<ClassPupils>在我的 View 模型中。在我看来,我绑定(bind)到这个集合。我的 TreeView View 代码如下所示:

<TreeView Grid.Row="0" Grid.Column="0" Margin="2" ItemsSource="{Binding ClassPupils}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type model:ClassPupils}" ItemsSource="{Binding Class}">
<Label Content="{Binding Class.ClassName}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type entity:Pupil}">
<Label Content="{Binding Name.Lastname}"/>
</DataTemplate>
</TreeView.Resources>
</TreeView>

但我只获得了类(class)的 TreeViewItems 而不是学生姓氏。我做错了什么?

最佳答案

HierarchicalDataTemplate 的

ItemsSource 应该是 Pupils

它应该指向包含此数据模板的子项的集合,即Pupils 而不是Class

<HierarchicalDataTemplate DataType="{x:Type model:ClassPupils}"
ItemsSource="{Binding Pupils}">
<Label Content="{Binding Class.ClassName}"/>
</HierarchicalDataTemplate>

关于c# - TreeView 的分层数据模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com