Wpf 通过单击文本展开/折叠treeview中的组

Wpf 通过单击文本展开/折叠treeview中的组,wpf,treeview,wpf-controls,treeviewitem,Wpf,Treeview,Wpf Controls,Treeviewitem,如何做到只需单击文本,而不是单击左侧的箭头,即可展开/折叠树视图中的组。您应该使用下一个setter为树项目创建样式: <Style x:Key="TreeItemStyle" TargetType="{x:Type TreeViewItem}"> <Setter Property="IsExpanded" Value="{Binding

如何做到只需单击文本,而不是单击左侧的箭头,即可展开/折叠树视图中的组。

您应该使用下一个setter为树项目创建样式:

        <Style x:Key="TreeItemStyle"
               TargetType="{x:Type TreeViewItem}">                
            <Setter Property="IsExpanded"
                    Value="{Binding Path=IsExpanded, Mode=TwoWay}"/>
        </Style>
然后拦截超级链接单击事件并将IsExpanded设置为true:

    private void Hyperlink_Click(object sender, RoutedEventArgs e)
    {
        var dc = ((Hyperlink)sender).DataContext;
        if (dc is GroupViewData)
        {
            ((GroupViewData)dc).IsExpanded = true;
        }
    }
当然,最好的方法是使用命令而不是单击处理程序,但我不知道表示模型的组成,因此无法提供适当的解决方案。我必须说的是,在我们具有相似需求的项目中,我们成功地避免了任何视图代码。上帝保佑WPF

    private void Hyperlink_Click(object sender, RoutedEventArgs e)
    {
        var dc = ((Hyperlink)sender).DataContext;
        if (dc is GroupViewData)
        {
            ((GroupViewData)dc).IsExpanded = true;
        }
    }