wpf treeview collapse/expand option disappeared

Posted by Muhammad Adnan on Stack Overflow See other posts from Stack Overflow or by Muhammad Adnan
Published on 2010-03-19T13:07:36Z Indexed on 2010/03/19 13:11 UTC
Read the original article Hit count: 807

Filed under:

I used following code

    <!-- TreeView -->               
    <Style x:Key="{x:Type TreeView}" TargetType="TreeView">
            <Setter Property="OverridesDefaultStyle" Value="True" />
            <Setter Property="SnapsToDevicePixels" Value="True" />
            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
            <Setter Property="Template">
                    <Setter.Value>
                            <ControlTemplate TargetType="TreeView">
                                    <Border 
                                            Name="Border" 
                                            CornerRadius="1" 
                                            Background="{StaticResource WindowBackgroundBrush}"
                                            BorderBrush="{StaticResource SolidBorderBrush}"
                                            BorderThickness="1">
                                            <ScrollViewer
                                              Focusable="False"
                                              CanContentScroll="False"
                                              Padding="4">
                                                    <ItemsPresenter/>
                                            </ScrollViewer>
                                    </Border>
                            </ControlTemplate>
                    </Setter.Value>
            </Setter>
    </Style>

    <!-- TreeViewItem -->
    <Style x:Key="TreeViewItemFocusVisual">
            <Setter Property="Control.Template">
                    <Setter.Value>
                            <ControlTemplate>
                                    <Border>
                                            <Rectangle Margin="0,0,0,0"
                                               StrokeThickness="5"
                                               Stroke="Black"
                                               StrokeDashArray="1 2"
                                               Opacity="0"/>
                                    </Border>
                            </ControlTemplate>
                    </Setter.Value>
            </Setter>
    </Style>
    <Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment,
                            RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment,
                            RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="Padding" Value="1,0,0,0"/>
            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
            <Setter Property="FocusVisualStyle" Value="{StaticResource TreeViewItemFocusVisual}"/>
            <Setter Property="Template">
                    <Setter.Value>
                            <ControlTemplate TargetType="{x:Type TreeViewItem}">
                                    <Grid>
                                            <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="Auto"/>
                                            </Grid.ColumnDefinitions>
                                            <Grid.RowDefinitions>
                                                    <RowDefinition Height="Auto"/>
                                                    <RowDefinition/>
                                            </Grid.RowDefinitions>
                                            <Border Name="Bd"
                                                    Grid.Column="0"
                                                    Background="{TemplateBinding Background}"
                                                    BorderBrush="{TemplateBinding BorderBrush}"
                                                    BorderThickness="{TemplateBinding BorderThickness}"
                                                    Padding="{TemplateBinding Padding}">
                                                    <ContentPresenter x:Name="PART_Header"
                                                            ContentSource="Header"
                                                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
                                            </Border>
                                            <ItemsPresenter x:Name="ItemsHost" Visibility="Visible"
                                                    Grid.Row="1"
                                                    Grid.Column="0"/>
                                    </Grid>
                                    <ControlTemplate.Triggers>
                                            <MultiTrigger>
                                                    <MultiTrigger.Conditions>
                                                            <Condition Property="HasHeader" Value="false"/>
                                                            <Condition Property="Width" Value="Auto"/>
                                                    </MultiTrigger.Conditions>
                                                    <Setter TargetName="PART_Header" Property="MinWidth" Value="75"/>
                                            </MultiTrigger>
                                            <MultiTrigger>
                                                    <MultiTrigger.Conditions>
                                                            <Condition Property="HasHeader" Value="false"/>
                                                            <Condition Property="Height" Value="Auto"/>
                                                    </MultiTrigger.Conditions>
                                                    <Setter TargetName="PART_Header" Property="MinHeight" Value="19"/>
                                            </MultiTrigger>
                                            <Trigger Property="IsSelected" Value="true">
                                                    <Setter TargetName="Bd" Property="Background"
                                                            Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
                                                    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/>
                                            </Trigger>
                                            <MultiTrigger>
                                                    <MultiTrigger.Conditions>
                                                            <Condition Property="IsSelected" Value="true"/>
                                                            <Condition Property="IsSelectionActive" Value="false"/>
                                                    </MultiTrigger.Conditions>
                                                    <Setter TargetName="Bd" Property="Background"
                                                                    Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
                                                    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
                                            </MultiTrigger>
                                            <Trigger Property="IsEnabled" Value="false">
                                                    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                                            </Trigger>
                                    </ControlTemplate.Triggers>
                            </ControlTemplate>
                    </Setter.Value>
            </Setter>
    </Style>
</Window.Resources>

<Grid>
    <TreeView>
            <TreeViewItem Header="Node 1">
                    <TreeViewItem Header="Node 1.1">
                            <TreeViewItem Header="Node 1.1.1" />
                    </TreeViewItem>
            </TreeViewItem>
            <TreeViewItem Header="Node 2">
                    <TreeViewItem Header="Node 2.1">
                            <TreeViewItem Header="Node 2.1.1" />
                    </TreeViewItem>
                    <TreeViewItem Header="Node 2.2">
                            <TreeViewItem Header="Node 2.2.1" />
                    </TreeViewItem>
            </TreeViewItem>
    </TreeView>
</Grid>

taken from this url... http://stackoverflow.com/questions/1526925/can-i-have-a-treeview-without-the-tree-structure

NOW I AM HAVING PROBLEM. I LOST COLLAPSE/EXPAND OPTIONS... HOW CAN I HAVE WITH THIS CODE...

© Stack Overflow or respective owner

Related posts about wpf