Example #1
0
 //构造函数私有化保证只能由类的静态方法实例化.当然,如果为public也是可以的,这里做只是为了统一构造入口,
 //便于管理和维护。
 private MyDependencyProperty(string name, Type propertyType, Type ownerType, MyPropertyMetadata propertyMetadata)
 {
     _propertyType     = propertyType;
     _ownerType        = ownerType;
     _name             = name;
     _propertyMetadata = propertyMetadata;
 }
Example #2
0
        //依赖属性实例化工厂方法类.
        public static MyDependencyProperty Register(string name, Type propertyType, Type ownerType, MyPropertyMetadata propertyMetadata)
        {
            if (propertyMetadata != null && propertyMetadata.DefaultValue.GetType() != propertyType)
            {
                throw new Exception(string.Format("the type of defaultValue is not {0}", propertyType.Name));
            }
            MyDependencyProperty dp = new MyDependencyProperty(name, propertyType, ownerType, propertyMetadata);

            return(dp);
        }