private PropertyDescriptorCollection CreatePropertyDescriptorCollection(Type propertyObjectType) { var propertyDescriptors = propertyObjectType.GetProperties(DefaultBindingFlags).Select(pi => pi).Where(pi => pi.GetIndexParameters().Length == 0).OrderBy(p => p.Name) .Select(propertyInfo => PropertyInfoDescriptor.CreateDescriptor(propertyObjectType, propertyInfo, this)).ToList(); return(new PropertyDescriptorCollection(propertyDescriptors)); }
public ListPropertyInfoDescriptor(PropertyInfo propertyInfo, PropertyDescriptorProvider provider) : base(provider) { PropertyInfo = propertyInfo; IsReadOnly = propertyInfo.CanWrite == false; Name = PropertyInfoDescriptor.GetName(propertyInfo, provider); DisplayName = PropertyInfoDescriptor.GetDescription(propertyInfo, provider); Category = PropertyInfoDescriptor.GetCategory(propertyInfo, provider); Description = PropertyInfoDescriptor.GetDescription(propertyInfo, provider); ItemPropertyDescriptor = new ListItemPropertyDescriptor <TCollection, TItem>(provider); _getter = PropertyInfoDescriptor.CreatePropertyGetter <TTarget, TCollection>(propertyInfo); _setter = propertyInfo.CanWrite ? PropertyInfoDescriptor.CreatePropertySetter <TTarget, TCollection>(propertyInfo) : null; }