如何压平WPF TreeView

Son*_*oul 5 c# wpf treeview grid mvvm

我需要一个像树视图一样的控件(绑定到树结构,基于绑定对象的IsExpanded属性扩展子节点),但是显示像网格一样的数据(没有缩进或切换图像).

扩展崩溃将根据绑定对象自动发生.

TreeView是完美的,我只需要删除缩进和三角形图像,使其垂直平坦,就像网格列.

我想我可以尝试覆盖TreeViewItem模板,但这不会显示任何内容..

svi*_*ick 2

根据TreeViewMSDN 上的风格,类似这样的东西应该可以工作:

<Style TargetType="TreeViewItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TreeViewItem">
                <StackPanel>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="ExpansionStates">
                            <VisualState x:Name="Expanded">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames
                                        Storyboard.TargetProperty="(UIElement.Visibility)"
                                        Storyboard.TargetName="ItemsHost">
                                        <DiscreteObjectKeyFrame KeyTime="0"
                                            Value="{x:Static Visibility.Visible}" />
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Collapsed" />
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <ContentPresenter ContentSource="Header" />
                    <ItemsPresenter Name="ItemsHost" Visibility="Collapsed" />
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)