【问题标题】:Expand/collapse groups in treeview by clicking the text通过单击文本展开/折叠树视图中的组
【发布时间】:2011-01-21 15:27:30
【问题描述】:

我该如何做才能在 TreeView 中展开/折叠组,只需单击文本,而不是单击左侧的箭头。

【问题讨论】:

    标签: wpf treeview wpf-controls treeviewitem


    【解决方案1】:

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

            <Style x:Key="TreeItemStyle"
                   TargetType="{x:Type TreeViewItem}">                
                <Setter Property="IsExpanded"
                        Value="{Binding Path=IsExpanded, Mode=TwoWay}"/>
            </Style>
    

    然后将名为 IsExpanded 的组视图数据类可观察属性添加到您:

        private bool _isExpanded;
    
        public bool IsExpanded
        {
            get
            {
                return this._isExpanded;
            }
            set
            {
                if (this._isExpanded != value)
                {
                    this._isExpanded = value;
                    this.OnPropertyChanged("IsExpanded");
                }
            }
        }
    

    然后拦截超链接点击事件并将IsExpanded设置为true:

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

    当然,最好的方法是使用命令而不是点击处理程序,但我不知道您的演示模型的组成,因此无法提供适当的解决方案。我只是必须说,在我们的项目中,我们有类似的需求,我们成功地避免了任何隐藏的视图代码。上帝保佑 WPF!

    【讨论】:

      猜你喜欢
      • 2012-01-19
      • 2017-11-24
      • 2010-12-15
      • 2011-09-18
      • 1970-01-01
      • 2018-03-10
      • 2016-05-17
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多