我有一個專案串列,其中串列中的每個專案都包含另一個專案串列。
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和子專案 wo 顯示JobName. 如何將其系結到TreeView?
uj5u.com熱心網友回復:
您有一個分層資料結構,這意味著一個專案包含另一個專案集合。A可以使用sTreeView顯示分層資料。HierarchicalDataTemplate這樣的模板定義了一個專案的外觀并指定了ItemsSource下一個級別。它還可以使用該ItemTemplate屬性顯式定義下一級的資料模板。這可以是 aHierarchicalDataTemplate或 a,DataTemplate具體取決于提供分層或非分層資料的級別。如果未指定其他專案模板,則相同的資料模板將應用于所有級別的所有專案。
第一級是JobesGroup專案,第二級是Jobes專案。
- 第一級:需要一個
HierarchicalDataTemplate定義如何GroupName顯示并將Jobes屬性指定為ItemsSource下一級的屬性。 - 第二級:一個簡單
DataTemplate的 forJobeName就足夠了,因為下面沒有更多的級別。它定義了如何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://www.uj5u.com/qiye/436750.html
