1

如何使用 a DelegateCommandin aTreeView来获取Expanded事件?

我应该使用DelegateCommand还是有其他方法?

谢谢

4

1 回答 1

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 的资源中应用以下样式(或根据需要进一步向上可视化树)

<Style TargetType="{x:Type TreeViewItem}">
    <Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
</Style>

注意:您也可以使用类似的技术来连接 IsSelected 属性 - 也非常有用!

于 2009-12-07T07:29:33.333 回答