0

Blacklight 是一组较旧的 WPF 控件和样式。代码可以在这里找到。它包含一个名为 AnimatedExpander 的控件,它并不是一个真正的扩展器,它只是实现了 HeaderedContentControl 并添加了一个 IsExpandedProperty dprop:

    public static readonly DependencyProperty IsExpandedProperty =
       DependencyProperty.Register("IsExpanded", typeof(bool), typeof(AnimatedExpander), new PropertyMetadata(true));

    public bool IsExpanded
    {
        get
        {
            if (this.expandToggleButton != null)
            {
                return this.expandToggleButton.IsChecked.Value;
            }

            return (bool)GetValue(IsExpandedProperty);
        }

        set
        {
            SetValue(IsExpandedProperty, value);
        }
    }

我需要绑定到 IsExpanded 以便我可以坚持扩展器是否扩展。我很确定我的绑定设置正确,并且这个自定义依赖属性存在问题。如果我在 Snoop 中打开视图,并在扩展器上设置 IsExpanded=True,则绑定有效。但是,只需单击控件上的 expandToggleButton 只会扩展控件,它不会影响我的绑定。

    <controls:AnimatedExpander IsExpanded="{Binding SGGExpanderExpanded}" />

    private bool _sGGExpanderExpanded;
    public bool SGGExpanderExpanded
    {
        get { return _sGGExpanderExpanded; }
        set
        {
            if (_sGGExpanderExpanded != value)
            {
                _sGGExpanderExpanded = value;
                OnPropertyChanged("SGGExpanderExpanded");
            }
        }
    }

当用户单击连接以展开控件的切换按钮时,如何绑定到更改的值?

4

1 回答 1

0

一个糟糕的解决方案:

我能够通过将事件附加到 ToggleButton 单击并查看“发送者”内容和 IsChecked 值来更新我的视图模型来完成这项工作。

于 2013-04-04T18:04:42.937 回答