public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(value, attributes); List <PropertyDescriptor> result = new List <PropertyDescriptor>(props.Count); foreach (PropertyDescriptor prop in props) { PropertyDescriptor addProperty = prop; if (ExcludedProperties.Contains(prop.Name)) { continue; } if (PropertyAttributes.ContainsKey(prop.PropertyType)) { List <Attribute> attributeList = new List <Attribute>(prop.Attributes.OfType <Attribute>()); attributeList.AddRange(PropertyAttributes[prop.PropertyType]); addProperty = new PropertyGridPropertyDescriptor(prop, attributeList.ToArray()); } result.Add(addProperty); } return(new PropertyDescriptorCollection(result.ToArray())); }
public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(value, attributes); List<PropertyDescriptor> result = new List<PropertyDescriptor>(props.Count); foreach (PropertyDescriptor prop in props) { PropertyDescriptor addProperty = prop; if (ExcludedProperties.Contains(prop.Name)) { continue; } if (PropertyAttributes.ContainsKey(prop.PropertyType)) { List<Attribute> attributeList = new List<Attribute>(prop.Attributes.OfType<Attribute>()); attributeList.AddRange(PropertyAttributes[prop.PropertyType]); addProperty = new PropertyGridPropertyDescriptor(prop, attributeList.ToArray()); } result.Add(addProperty); } return new PropertyDescriptorCollection(result.ToArray()); }