Das TreeView-Steuerelement zeigt per Standard alle Einträge zusammengeklappt an. Einzelne Einträge können über die IsExpanded Property aufgeklappt werden. Etwas schwieriger wird es hierbei, wenn das TreeView dynamisch durch Data Binding aufgebaut wird.
Eine elegante Lösung hierfür wäre ein ItemContainerStyle, der für jeden Eintrag die IsExpanded Property auf den Wert True setzt. In Listing 1 wird gezeigt, wie ein solcher ItemContainerStyle deklariert wird und beim TreeView zum Einsatz kommt.
<Window x:Class="WpfExpandingTreeView.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <Style x:Key="ExpandAll" TargetType="{x:Type TreeViewItem}"> <Setter Property="IsExpanded" Value="True"/> </Style> </Window.Resources> <Grid> <TreeView ItemContainerStyle="{StaticResource ExpandAll}"> <TreeViewItem Header="Level 1"> <TreeViewItem Header="Level 2.1" /> </TreeViewItem> </TreeView> </Grid> </Window>