#117 – Registering a Dependency Property(注册一个依赖属性)

来源:互联网 发布:海康ntp服务器地址端口 编辑:程序博客网 时间:2024/05/12 22:47

原文地址:https://wpf.2000things.com/2010/11/06/117-registering-a-dependency-property/

为了使用依赖属性,要在使用的类中创建一个DependencyProperty 类的静态实例。之所以创建静态的实例是因为在DependencyProperty 类中仅仅只是描述这个依赖属性,而并没有真正的存储这个依赖属性的值。

你可以通过下面的方法声明一个静态属性:

public static readonly DependencyProperty AgeProperty;

我们通常使用静态方法 DependencyProperty.Register 构造并注册一个依赖属性。

        static Person()        {            PropertyMetadata ageMetadata =                new PropertyMetadata(                    18,     // Default value                    new PropertyChangedCallback(OnAgeChanged),                    new CoerceValueCallback(OnAgeCoerceValue));            // Register the property            AgeProperty =                DependencyProperty.Register(                    "Age",                 // Property's name                    typeof(int),           // Property's type                    typeof(Person),        // Defining class' type                    ageMetadata,           // Defines default value & callbacks  (optional)                    new ValidateValueCallback(OnAgeValidateValue));   // validation (optional)        }

前3个参数是注册函数Register 必须的。

你同样还可以通过该函数设置:

 -属性的默认值

 -属性值改变时触发的函数

 -属性值验证回调函数(Coercion and validation callbacks)

在定义依赖属性的时候,应该将它设置为 public static readonly




0 0