【发布时间】:2010-12-07 02:42:22
【问题描述】:
我有一个自定义的附加属性,但访问器永远不会在数据绑定上被访问。 这些访问器是否意味着每次附加属性更改时都可以访问?
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}" />
【问题讨论】:
-
绑定不访问属性——它们使用底层依赖对象和绑定框架来访问依赖属性的值。当我第一次开始摆弄DP时,这个也让我感到惊讶。 WPF 中有很多内容。
-
为什么框架(或 xaml 编辑器)需要访问器来遵守命名约定,如果它们甚至不被 WPF 属性系统使用?
标签: wpf data-binding properties attached-properties