Присоедините команды к 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 - тоже очень полезно!!

Другие вопросы по тегам