我正在尝试了解创建附加属性时所发生的一切。
是否需要SetText()
和GetText()
方法(通过代码段/模板插入并在许多示例中看到)?框架内的内容是使用它们吗?
public static readonly DependencyProperty TextProperty =
DependencyProperty.RegisterAttached("Text",
typeof(string),
typeof(FundIndexDataHeaderItem),
new PropertyMetadata(default(string)));
public static void SetText(UIElement element, string value)
{
element.SetValue(TextProperty, value);
}
public static string GetText(UIElement element)
{
return (string)element.GetValue(TextProperty);
}
我可以用一个简单的属性替换这些方法,这样我就可以通过属性获取/设置而不是使用这些方法吗?
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
答案 0 :(得分:4)
它们只是为了您的方便,框架不使用它们。
你不能这样做,因为你需要以某种方式传递设置属性的实例,因为附加了属性,你没有this
的实例。