/// <summary> /// Initializes a new instance of the <see cref="DependencyProperty"/> class. /// </summary> /// <param name="declaringType">The type which declares the property.</param> /// <param name="ownerType">The type which can own this property.</param> /// <param name="propertyType">The type of the property.</param> /// <param name="name">The name of the property.</param> /// <param name="defaultBindingMode">The default <see cref="BindingMode"/> for this property.</param> /// <param name="isAttachement">Specifies if the property is a attachement.</param> /// <param name="defaultValue">The default value of the property.</param> /// <param name="coerceValueCallback">The callback for coercing the value.</param> /// <param name="validationCallback">The validation callback of the value.</param> /// <param name="changingCallback">The changing callback of the property.</param> /// <param name="changedCallback">The changed callback of the property.</param> internal DependencyProperty(TypeInfo declaringType, String name, BindingMode defaultBindingMode, Boolean isAttachement, TProperty defaultValue, CoerceValueDelegate <TOwner, TProperty> coerceValueCallback, PropertyValidationDelegate <TOwner, TProperty> validationCallback, PropertyChangingDelegate <TOwner, TProperty> changingCallback, PropertyChangedDelegate <TOwner, TProperty> changedCallback, out DependencyPropertyKey <TProperty> key) : base(declaringType, Reflection.TypeOf <TOwner> .TypeInfo, name, defaultBindingMode, isAttachement, false) { _DefaultValue = defaultValue; _CoerceValueCallback = coerceValueCallback; _ValidationCallback = validationCallback; _ChangingCallback = changingCallback; _ChangedCallback = changedCallback; Key = key = new DependencyPropertyKey <TProperty>(this); }