public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors) { if (listAccessors == null || listAccessors.Length == 0) { return(new PropertyDescriptorCollection(ItemProperties.ToArray())); } var propertyDescriptor = listAccessors[listAccessors.Length - 1]; var collectionInfo = ViewInfo.DataSchema.GetCollectionInfo(propertyDescriptor.PropertyType); if (collectionInfo != null) { return(new PropertyDescriptorCollection(ViewInfo.DataSchema.GetPropertyDescriptors(collectionInfo.ElementType).ToArray())); } return(new PropertyDescriptorCollection(ViewInfo.DataSchema.GetPropertyDescriptors(propertyDescriptor.PropertyType).ToArray())); }