附属物详细

时间:2011-11-29 21:40:34

标签: wpf silverlight dependency-properties

我正在尝试了解创建附加属性时所发生的一切。

是否需要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); }
}

1 个答案:

答案 0 :(得分:4)

它们只是为了您的方便,框架不使用它们。

你不能这样做,因为你需要以某种方式传递设置属性的实例,因为附加了属性,你没有this的实例。