我有一个项目列表,其中列表中的每个项目都包含另一个项目列表。
public List<JobesGroup> JobeGroups { get; set; } = new List<JobesGroup>()
{
new JobesGroup()
{
ID=1,
GroupName="test1",
Jobes=new List<Jobe>()
{
new Jobe()
{
ID=1,
JobeName="sss"
},
new Jobe()
{
ID=2,
JobeName="aaa"
}
}
},
new JobesGroup()
{
ID=2,
GroupName="test2",
Jobes=new List<Jobe>()
{
new Jobe()
{
ID=3,
JobeName="ddd"
},
new Jobe()
{
ID=4,
JobeName="fff"
}
}
}
};我希望TreeView主项显示GroupName,而subitemes显示JobName。如何将其绑定到TreeView
发布于 2022-03-03 07:51:00
您有一个分层数据结构,这意味着一个项包含另一个项集合。TreeView可以使用HierarchicalDataTemplate显示分层数据。这样的模板定义了项的授权,并指定了下一级别的ItemsSource。它还可以使用ItemTemplate属性显式地为下一级别定义数据模板。这可以是一个HierarchicalDataTemplate,也可以是一个DataTemplate,这取决于提供分层或非分层数据的级别。如果未指定其他项模板,则将对所有级别的所有项应用相同的数据模板。
第一级是JobesGroup项,第二级是Jobes项。
HierarchicalDataTemplate,该HierarchicalDataTemplate定义如何显示GroupName,并将Jobes属性指定为下一个DataTemplate级别的ItemsSource:简单的JobeName DataTemplate就足够了,因为下面没有更多的级别。它定义了JobeName的显示方式。<TreeView ItemsSource="{Binding JobeGroups}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:JobesGroup}"
ItemsSource="{Binding Jobes}">
<TextBlock Text="{Binding GroupName}"/>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate DataType="{x:Type local:Jobe}">
<TextBlock Text="{Binding JobeName}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>https://stackoverflow.com/questions/71330518
复制相似问题