public override object Clone() { PropertyOverride po = (PropertyOverride)base.Clone(); po._baseClassId = _baseClassId; po._baseIsAbstract = _baseIsAbstract; po._basePropertyId = _basePropertyId; return(po); }
protected override void OnPropertyTypeChanged() { base.OnPropertyTypeChanged(); DataTypePointer type = PropertyType; //update special values in action parameter-values List <PropertyValueClass> values = new List <PropertyValueClass>(); List <CustomPropertyOverridePointer> items = new List <CustomPropertyOverridePointer>(); if (Getter != null) { Getter.Parameters[0].SetDataType(type); if (Getter.ActionList != null) { Dictionary <UInt32, IAction> acts = this.RootPointer.GetActions(); Getter.ActionList.SetActions(acts); Getter.ActionList.FindItemByType <CustomPropertyOverridePointer>(items); } } if (Setter != null) { if (Setter.ActionList != null) { Dictionary <UInt32, IAction> acts = this.RootPointer.GetActions(); Setter.ActionList.SetActions(acts); Setter.ActionList.FindItemByType <CustomPropertyOverridePointer>(items); Setter.ActionList.FindItemByType <PropertyValueClass>(values); } } foreach (CustomPropertyOverridePointer a in items) { PropertyOverride po = (PropertyOverride)(a.Property); if (po.BaseClassId == this.BaseClassId && po.BasePropertyId == this.BasePropertyId) { po.SetMembers(CanRead, CanWrite, AccessControl, type); } } foreach (PropertyValueClass a in values) { a.SetDataType(type); } }