Вы должны создать стиль для своего элемента дерева с помощью следующего установщика:
<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!