Присоедините команды к TreeView в wpf, используя призму - PullRequest
1 голос
/ 07 декабря 2009

Как использовать DelegateCommand в TreeView для получения события Expanded?

Должен ли я использовать DelegateCommand или есть другой способ?

Спасибо

1 Ответ

1 голос
/ 07 декабря 2009

Поскольку вы упоминаете 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>

Примечание: вы также можете использовать похожую технику для подключения свойства IsSelected - также очень полезно !!

...