原文地址:
https://wpf.2000things.com/2010/11/03/114-how-dependency-properties-are-implemented/
在WPF中,依赖属性可以当做一般CLR属性一样使用,但是它实际应用起来却完全不一样。它增加了许多复杂的功能处理数据绑定、属性继承和属性更改通知。
一个想要应用依赖属性的类必须继承自DependencyObject,DependencyObject 类支持读写依赖属性。
这个类还必须为新的属性声明一个静态的DependencyProperty 变量。该静态变量的实例通过DependencyProperty.Register 方法创建。这个被创建的实例存储的是属性的元数据,并不存储属性的值。
public static readonly DependencyProperty AgeProperty =
DependencyProperty.Register("Age", typeof(int), typeof(Person));
依赖属性的值是通过DependencyObject 类的GetValue 和SetValue 方法来管理的。
public int Age
{
get { return (int)GetValue(AgeProperty); }
set { SetValue(AgeProperty, value); }
}