Wpf 在树视图中展开父级时展开子级

Wpf 在树视图中展开父级时展开子级,wpf,binding,treeview,datatrigger,Wpf,Binding,Treeview,Datatrigger,当父节点展开时,我正在尝试展开子节点 否则说明:(Child.IsExpanded==Parent.IsExpanded) 这似乎是正确的,但似乎不起作用: <TreeView ItemsSource="{Binding}"> <TreeView.ItemContainerStyle> <Style TargetType="TreeViewItem"> <Style.Triggers>

当父节点展开时,我正在尝试展开子节点

否则说明:(Child.IsExpanded==Parent.IsExpanded)

这似乎是正确的,但似乎不起作用:

<TreeView ItemsSource="{Binding}">
    <TreeView.ItemContainerStyle>
        <Style TargetType="TreeViewItem">
            <Style.Triggers>
                <DataTrigger Value="True" 
                             Binding="{Binding Path=IsExpanded, 
                             RelativeSource={RelativeSource 
                             Mode=FindAncestor, 
                             AncestorType={x:Type TreeViewItem}, 
                             AncestorLevel=2}}">
                    <Setter Property="IsExpanded" Value="True" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TreeView.ItemContainerStyle>
</TreeView>

这也不是:

<TreeView ItemsSource="{Binding}">
    <TreeView.ItemContainerStyle>
        <Style TargetType="TreeViewItem">
            <Setter Property="IsExpanded"
                    Value="{Binding Path=IsExpanded, 
                             RelativeSource={RelativeSource 
                             Mode=FindAncestor, 
                             AncestorType={x:Type TreeViewItem}, 
                             AncestorLevel=2}}" />
        </Style>
    </TreeView.ItemContainerStyle>
</TreeView>

这里少了什么


提前谢谢。

这两个都适合我。如果使用静态
TreeViewItems
对其进行测试,请确保通过资源应用样式,
ItemContainerStyle
仅与动态创建的容器相关。还要注意,用户交互可能会设置一个本地值,覆盖这些样式