首页 > 其他 > 详细

依赖项属性语法格式

时间:2015-09-27 18:38:59      阅读:279      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!