Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Előfordulhat, hogy olyan adatforráshoz szeretne TreeView kötni, amelynek mélysége nem ismert. Ez akkor fordulhat elő, ha az adatok rekurzív jellegűek, például egy fájlrendszerben, ahol a mappák mappákat tartalmazhatnak, vagy egy vállalat szervezeti struktúráját, ahol az alkalmazottak közvetlen jelentésekként más alkalmazottakkal rendelkeznek.
Az adatforrásnak hierarchikus objektummodellel kell rendelkeznie. Előfordulhat például, hogy egy Employee osztály egy alkalmazott közvetlen jelentéseiből álló Alkalmazott objektumgyűjteményt tartalmaz. Ha az adatok nem hierarchikus módon jelenik meg, akkor hierarchikusan kell ábrázolni az adatokat.
Amikor beállítja a ItemsControl.ItemTemplate tulajdonságot, és a ItemsControl létrehoz egy-egy ItemsControl-t minden gyermekelemhez, akkor a gyermek ItemsControl ugyanazt a ItemTemplate-et használja, mint a szülő. Ha például a ItemTemplate tulajdonságot egy adathoz kötött TreeView-re állítják be, minden létrehozott TreeViewItem a DataTemplateItemTemplate tulajdonságához rendelt TreeView-at használja.
A HierarchicalDataTemplate lehetővé teszi a ItemsSource megadását egy TreeViewItemvagy bármely HeaderedItemsControlszámára az adatsablonon. A HierarchicalDataTemplate.ItemsSource tulajdonság beállításakor a rendszer ezt az értéket használja a HierarchicalDataTemplate alkalmazásakor. A(z) HierarchicalDataTemplatehasználatával rekurzív módon beállíthatja a(z) ItemsSource-et a TreeViewItemminden egyes TreeView-jéhez.
példa
Az alábbi példa bemutatja, hogyan köthet egy TreeView hierarchikus adatokhoz, és hogyan HierarchicalDataTemplate meg az egyes ItemsSourceTreeViewItem. A TreeView olyan XML-adatokhoz kötődik, amelyek egy vállalat alkalmazottait képviselik. Minden Employee elem tartalmazhat más Employee elemeket, amelyek jelzik, hogy ki kinek jelent. Mivel az adatok rekurzívak, a HierarchicalDataTemplate minden szinten alkalmazhatók.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<XmlDataProvider x:Key="myCompany" XPath="Company/Employee">
<x:XData>
<Company xmlns="">
<Employee Name="Don Hall">
<Employee Name="Alice Ciccu">
<Employee Name="David Pelton">
<Employee Name="Vivian Atlas"/>
</Employee>
<Employee Name="Jeff Price"/>
<Employee Name="Andy Jacobs"/>
</Employee>
<Employee Name="Bill Malone">
<Employee Name="Maurice Taylor"/>
<Employee Name="Sunil Uppal"/>
<Employee Name="Qiang Wang"/>
</Employee>
</Employee>
</Company>
</x:XData>
</XmlDataProvider>
<!-- Bind the HierarchicalDataTemplate.ItemsSource property to the employees under
each Employee element. -->
<HierarchicalDataTemplate x:Key="EmployeeTemplate"
ItemsSource="{Binding XPath=Employee}">
<TextBlock Text="{Binding XPath=@Name}" ></TextBlock>
</HierarchicalDataTemplate>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True"/>
</Style>
</Page.Resources>
<Grid>
<TreeView ItemsSource="{Binding Source={StaticResource myCompany}}"
ItemTemplate="{StaticResource EmployeeTemplate}"/>
</Grid>
</Page>
Lásd még
.NET Desktop feedback