Разверните / сверните группы в виде дерева, щелкнув текст - PullRequest
0 голосов
/ 21 января 2011

Как мне сделать так, чтобы можно было развернуть / свернуть группы в TreeView, просто щелкнув текст, а не щелкая стрелку слева.

1 Ответ

1 голос
/ 21 января 2011

Вы должны создать стиль для своего элемента дерева с помощью следующего установщика:

        <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");
            }
        }
    }

Затем перехватите гиперссылкусобытие click и установите IsExpanded в значение true:

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

Конечно, лучший способ - использовать команды вместо обработчиков щелчков, но я не знаю состав вашей модели презентации, поэтому не могу обеспечить правильное решение,Я просто должен сказать, что в наших проектах с одинаковыми требованиями мы успешно избегаем кода представления.Боже, храни WPF!

...