获取或设置附加属性的访问者不在数据绑定中触发? WPF

时间:2009-10-15 16:41:00

标签: wpf data-binding properties attached-properties

我有一个自定义的附加属性,但从未在数据绑定上访问Accessor。 每次附加属性发生变化时,是否都要访问这些访问者?

  public static readonly DependencyProperty CharacterColumnNumberProperty =
        DependencyProperty.RegisterAttached("CharacterColumnNumber", typeof(int), typeof(DragCanvas), new UIPropertyMetadata(1));

    public static int GetCharacterColumnNumber(UIElement uiElement)
    {
        if (uiElement != null)
            return (int)uiElement.GetValue(CharacterColumnNumberProperty);
        else return 0;
    }

    public static void SetCharacterColumnNumber(UIElement uiElement, int value)
    {
        if (uiElement != null)
        {
            uiElement.SetValue(CharacterColumnNumberProperty, value);
            DragCanvas.SetLeft(uiElement, value * 10);
        }
    }

XAML:

 <Setter Property="local:DragCanvas.CharacterColumnNumber" Value="{Binding Path=CharacterColumnNumber, Mode=TwoWay}" />

1 个答案:

答案 0 :(得分:4)

不,他们不是。如果您想知道内部属性引擎何时更改这些值,请传入UIPropertyMetadata的PropertyChangedCallback参数的委托。

每次更改属性时都会调用此委托,无论是通过CLR属性还是通过依赖属性引擎内部的更改(即绑定)。