public override void SetValue(object obj, object value) { if (this.m_typeCode != 0) { IPropertyStore propertyStore = ((ReportObject)obj).PropertyStore; if (this.m_definition != null) { this.m_definition.Validate(obj, value); } switch (this.m_typeCode) { default: propertyStore.SetObject(this.m_index, value); break; case PropertyTypeCode.ContainedObject: propertyStore.SetObject(this.m_index, (IContainedObject)value); break; case PropertyTypeCode.Boolean: propertyStore.SetBoolean(this.m_index, (bool)value); break; case PropertyTypeCode.Integer: case PropertyTypeCode.Enum: propertyStore.SetInteger(this.m_index, (int)value); break; case PropertyTypeCode.Size: propertyStore.SetSize(this.m_index, (ReportSize)value); break; } } else { this.m_property.SetValue(obj, value, null); } }