internal void SetAttachedPropertyUsage(AttachedPropertyUsage attachedPropertyUsage) { if (this.Sealed) { throw new InvalidOperationException(string.Format("TypeMetadataCannotChangeAfterUse", new object[0])); } this._attachedPropertyUsage = attachedPropertyUsage; this.SetModified(0x10); }
public void SetAttachedPropertyUsage(AttachedPropertyUsage attachedPropertyUsage) { if (this.Sealed) { throw new InvalidOperationException(string.Format("TypeMetadataCannotChangeAfterUse")); } this._attachedPropertyUsage = attachedPropertyUsage; this.SetModified(16); }
protected virtual void Merge(RadPropertyMetadata baseMetadata, RadProperty dp) { if (baseMetadata == null) { throw new ArgumentNullException("baseMetadata"); } if (this.Sealed) { throw new InvalidOperationException(string.Format("TypeMetadataCannotChangeAfterUse", new object[0])); } if (!this.IsModified(1)) { this._defaultValue = baseMetadata.DefaultValue; } if (!this.IsModified(0x10)) { this._attachedPropertyUsage = baseMetadata.AttachedPropertyUsage; } if (baseMetadata.PropertyChangedCallback != null) { Delegate[] delegateArray1 = baseMetadata.PropertyChangedCallback.GetInvocationList(); if (delegateArray1.Length > 0) { PropertyChangedCallback callback1 = (PropertyChangedCallback)delegateArray1[0]; for (int num1 = 1; num1 < delegateArray1.Length; num1++) { callback1 = (PropertyChangedCallback)Delegate.Combine(callback1, (PropertyChangedCallback)delegateArray1[num1]); } callback1 = (PropertyChangedCallback)Delegate.Combine(callback1, this._propertyChangedCallback); this._propertyChangedCallback = callback1; } } if (this._coerceValueCallback == null) { this._coerceValueCallback = baseMetadata.CoerceValueCallback; } }
protected virtual void Merge(RadPropertyMetadata baseMetadata, RadProperty dp) { if (baseMetadata == null) { throw new ArgumentNullException(nameof(baseMetadata)); } if (this.Sealed) { throw new InvalidOperationException(string.Format("TypeMetadataCannotChangeAfterUse")); } if (!this.IsModified(1)) { this._defaultValue = baseMetadata.DefaultValue; } if (!this.IsModified(16)) { this._attachedPropertyUsage = baseMetadata.AttachedPropertyUsage; } if (baseMetadata.PropertyChangedCallback != null) { Delegate[] invocationList = baseMetadata.PropertyChangedCallback.GetInvocationList(); if (invocationList.Length > 0) { PropertyChangedCallback propertyChangedCallback = (PropertyChangedCallback)invocationList[0]; for (int index = 1; index < invocationList.Length; ++index) { propertyChangedCallback = (PropertyChangedCallback)Delegate.Combine((Delegate)propertyChangedCallback, invocationList[index]); } this._propertyChangedCallback = propertyChangedCallback + this._propertyChangedCallback; } } if (this._coerceValueCallback != null) { return; } this._coerceValueCallback = baseMetadata.CoerceValueCallback; }
private static RadProperty RegisterCommon( string name, Type propertyType, Type ownerType, AttachedPropertyUsage usage, RadPropertyMetadata defaultMetadata, ValidateValueCallback validateValueCallback) { RadProperty.FromNameKey fromNameKey = new RadProperty.FromNameKey(name, ownerType); lock (RadProperty.Synchronized) { if (RadProperty.PropertyFromName.Contains((object)fromNameKey)) { throw new ArgumentException(string.Format("Property already registered", new object[2] { (object)name, (object)ownerType.Name })); } } if (defaultMetadata == null) { defaultMetadata = RadProperty.AutoGeneratePropertyMetadata(propertyType, validateValueCallback, name, ownerType); } else if (!defaultMetadata.DefaultValueWasSet()) { defaultMetadata.DefaultValue = RadProperty.AutoGenerateDefaultValue(propertyType); } defaultMetadata.SetAttachedPropertyUsage(usage); RadProperty dp = new RadProperty(name, propertyType, ownerType, defaultMetadata, validateValueCallback); defaultMetadata.Seal(dp, (Type)null); lock (RadProperty.Synchronized) RadProperty.PropertyFromName[(object)fromNameKey] = (object)dp; return(dp); }
private static RadProperty RegisterCommon(string name, Type propertyType, Type ownerType, AttachedPropertyUsage usage, RadPropertyMetadata defaultMetadata, ValidateValueCallback validateValueCallback) { RadProperty.FromNameKey key1 = new RadProperty.FromNameKey(name, ownerType); lock (RadProperty.Synchronized) { if (RadProperty.PropertyFromName.Contains(key1)) { object[] objArray1 = new object[] { name, ownerType.Name }; throw new ArgumentException(string.Format("Property already registered", objArray1)); } } if (defaultMetadata == null) { defaultMetadata = RadProperty.AutoGeneratePropertyMetadata(propertyType, validateValueCallback, name, ownerType); } else { if (!defaultMetadata.DefaultValueWasSet()) { defaultMetadata.DefaultValue = RadProperty.AutoGenerateDefaultValue(propertyType); } //TODO: //RadProperty.ValidateMetadataDefaultValue(defaultMetadata, propertyType, validateValueCallback); } defaultMetadata.SetAttachedPropertyUsage(usage); RadProperty property1 = new RadProperty(name, propertyType, ownerType, defaultMetadata, validateValueCallback); defaultMetadata.Seal(property1, null); lock (RadProperty.Synchronized) { RadProperty.PropertyFromName[key1] = property1; } return(property1); }