Как мне сделать так, чтобы можно было разворачивать/сворачивать группы в TreeView, просто щелкая по тексту, а не щелкая стрелку влево.
Развернуть/свернуть группы в дереве, щелкнув текст
Ответы (1)
Вы должны создать стиль для своего элемента дерева с помощью следующего сеттера:
<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!
person
Alex Zhevzhik
schedule
21.01.2011