TreeViewItem.ExpandSubtree Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Expanderar TreeViewItem kontrollen och alla dess underordnade TreeViewItem element.
public:
void ExpandSubtree();
public void ExpandSubtree();
member this.ExpandSubtree : unit -> unit
Public Sub ExpandSubtree ()
Exempel
I följande exempel visas hur du hittar de markerade TreeViewItem objekten och expanderar det och alla underordnade objekt. Följande XAML skapar en TreeView och fyller den med vissa data.
<StackPanel>
<StackPanel.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="Kari Hensien"/>
</Employee>
<Employee Name="Andy Jacobs"/>
</Employee>
<Employee Name="Bill Malone">
<Employee Name="Maurice Taylor">
<Employee Name="Sunil Uppal">
<Employee Name="Qiang Wang"/>
</Employee>
</Employee>
</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}"/>
</HierarchicalDataTemplate>
</StackPanel.Resources>
<TreeView Name="treeView1"
ItemsSource="{Binding Source={StaticResource myCompany}}"
ItemTemplate="{StaticResource EmployeeTemplate}"/>
<Button Name="expandSelect"
Margin="5,0,0,0"
Content="Expand _Selected Item"
Click="expandSelected_Click"/>
</StackPanel>
Följande kod passerar TreeView för att hitta den markerade TreeViewItem och anropar ExpandSubtree sedan för att visa alla underordnade objekt i den valda TreeViewItem.
Note
Metoden GetTreeViewItem fungerar bara för TreeViewItem kontroller som inte är virtualiserade. Information om hur du hittar en TreeViewItem som kan virtualiseras finns i Så här hittar du en TreeViewItem i en TreeView.
private void expandSelected_Click(object sender, RoutedEventArgs e)
{
if (treeView1.SelectedItem == null)
{
return;
}
TreeViewItem tvi = GetTreeViewItem(treeView1, treeView1.SelectedItem);
if (tvi != null)
{
tvi.ExpandSubtree();
}
}
// Traverse the TreeView to find the TreeViewItem
// that corresponds to the selected item.
private TreeViewItem GetTreeViewItem(ItemsControl parent, object item)
{
// Check whether the selected item is a direct child of
// the parent ItemsControl.
TreeViewItem tvi =
parent.ItemContainerGenerator.ContainerFromItem(item) as TreeViewItem;
if (tvi == null)
{
// The selected item is not a child of parent, so check
// the child items of parent.
foreach (object child in parent.Items)
{
TreeViewItem childItem =
parent.ItemContainerGenerator.ContainerFromItem(child) as TreeViewItem;
if (childItem != null)
{
// Check the next level for the appropriate item.
tvi = GetTreeViewItem(childItem, item);
}
}
}
return tvi;
}
Private Sub expandSelected_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If treeView1.SelectedItem Is Nothing Then
Exit Sub
End If
Dim tvi As TreeViewItem =
GetTreeViewItem(treeView1, treeView1.SelectedItem)
If tvi IsNot Nothing Then
tvi.ExpandSubtree()
End If
End Sub
' Traverse the TreeView to find the TreeViewItem
' that corresponds to the selected item.
Private Function GetTreeViewItem(ByVal parent As ItemsControl,
ByVal item As Object) As TreeViewItem
' Check whether the selected item is a direct child of
' the parent ItemsControl.
Dim tvi As TreeViewItem =
TryCast(parent.ItemContainerGenerator.ContainerFromItem(item), TreeViewItem)
If tvi Is Nothing Then
' The selected item is not a child of parent, so check
' the child items of parent.
For Each child As Object In parent.Items
Dim childItem As TreeViewItem =
TryCast(parent.ItemContainerGenerator.ContainerFromItem(child), TreeViewItem)
If childItem IsNot Nothing Then
' Check the next level for the appropriate item.
tvi = GetTreeViewItem(childItem, item)
End If
Next
End If
Return tvi
End Function