码迷,mamicode.com
首页 > 其他好文 > 详细

依赖项属性语法格式

时间:2015-09-27 18:39:09      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

 class MyClass : DependencyObject
    {
        public static readonly DependencyProperty MyfieldProperty = DependencyProperty.Register("Myfield", typeof(int), typeof(MyClass), new PropertyMetadata(0), new ValidateValueCallback(new MyClass().MyValidateMethod));
        public int Myfield
        {
            get { return (int)GetValue(MyfieldProperty); }
            set { SetValue(MyfieldProperty, value); }
        }
        public bool MyValidateMethod(object value)
        {
            return true;//这里实现验证
        }
    }

 Register方法有三种重载

Register(String, Type, Type)   使用指定的属性名称、属性类型和属性所在对象的类型。

Register(String, Type, Type, PropertyMetadata) 使用指定的属性名称、属性类型、属性所在对象的类型和属性元数据注册依赖项属性。

Register(String, Type, Type, PropertyMetadata, ValidateValueCallback) 使用指定的属性名称、属性类型、属性所在对象的类型、属性元数据和属性的值验证回调来注册依赖项属性。

在Register中,各个参数解释如下:

String:依赖属性的名字(不加Property,即字段的名字);

Type:属性的类型;

Type:属性所属对象的类型;

PropertyMetadata:依赖项对象的属性元数据,是一个PropertyMetadata类型,可能赋初始值。PropertyMetadata有一个object的构造函数;

ValidateValueCallback:表示用作回调的方法,这个类型是一个委托,用于验证依赖项属性的值的有效性,因为是委托,故它的构造参数为一个方法名。

最后,来构造依赖属性,与普通的属性有所区别:

Public 属性类型 属性名

{

        Get {return (属性类型)this.GetValue(字段名); }

        Set {this.SetValue(字段名, value); }

}

其中的GetValue和SetValue都是调用父类DependencyObject的方法。

 

依赖项属性语法格式

标签:

原文地址:http://www.cnblogs.com/gaowen/p/4842446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!