TreeViewItem.ExpandSubtree メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
TreeViewItem コントロールとそのすべての子 TreeViewItem 要素を展開します。
public:
void ExpandSubtree();
public void ExpandSubtree ();
member this.ExpandSubtree : unit -> unit
Public Sub ExpandSubtree ()
例
次の例では、選択した項目 TreeViewItem とそのすべての子項目を検索して展開する方法を示します。 次の XAML では、データが TreeView 作成され、データが設定されます。
<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>
次のコードは、選択した項目を TreeView 検索し、選択した TreeViewItem 子項目をすべて表示する呼び出 ExpandSubtree しを TreeViewItemスキャンします。
注意
このメソッドは GetTreeViewItem
、仮想化されていないコントロールに対 TreeViewItem してのみ機能します。 仮想化される可能性がある項目を TreeViewItem 見つける方法については、「 方法: TreeViewItem を 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