我有一个自定义的附加属性,但从未在数据绑定上访问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}" />
答案 0 :(得分:4)
不,他们不是。如果您想知道内部属性引擎何时更改这些值,请传入UIPropertyMetadata的PropertyChangedCallback参数的委托。
每次更改属性时都会调用此委托,无论是通过CLR属性还是通过依赖属性引擎内部的更改(即绑定)。