Присоедините команды к TreeView в wpf, используя призму
Как я могу использовать DelegateCommand
в TreeView
чтобы получить Expanded
событие?
Должен ли я использовать DelegateCommand
или есть другой способ?
Спасибо
1 ответ
Решение
Поскольку вы упоминаете Prism, я предполагаю, что у вас есть контроллер или ViewModel, присоединенные к представлению, содержащему ваш TreeView...
В таком случае предоставьте логическое свойство IsExpanded
private bool _isExpanded;
public bool IsExpanded
{
get { return _isExpanded; }
set
{
if (value != _isExpanded)
{
_isExpanded = value;
RaisePropertyChanged("IsExpanded");
// Apply custom logic here...
}
}
}
Теперь, чтобы подключить это свойство к TreeView, вам нужно применить следующий стиль в ресурсах TreeView (или далее по мере необходимости вверх по дереву Visual).
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
</Style>
NB: Вы также можете использовать похожую технику для подключения свойства IsSelected - тоже очень полезно!!