public PropertyDescriptorCollection GetProperties(Attribute[] attributes) { if (this.GetClassView() == null) { return(TypeDescriptor.GetProperties(this.obj, attributes)); } if (properties == null) { PropertyDescriptorCollection realPropertyDescriptors = TypeDescriptor.GetProperties(this.obj, attributes, true); PropertyDescriptor[] wrappedProperties = new PropertyDescriptor[this.GetClassView().PropertyViews.Count]; int i = 0; foreach (PropertyView propertyView in this.GetClassView().PropertyViews) { foreach (PropertyDescriptor realPropertyDescriptor in realPropertyDescriptors) { //TODO: fix real property path traversal... if (realPropertyDescriptor.Name.Equals(propertyView.Path)) { wrappedProperties[i] = new WrappedProperty(realPropertyDescriptor, propertyView, attributes); i++; break; } } } properties = new PropertyDescriptorCollection(wrappedProperties); } return(properties); }
public PropertyDescriptorCollection GetProperties(Attribute[] attributes) { if (this.GetClassView() == null) return TypeDescriptor.GetProperties(this.obj, attributes); if (properties == null) { PropertyDescriptorCollection realPropertyDescriptors = TypeDescriptor.GetProperties(this.obj, attributes, true); PropertyDescriptor[] wrappedProperties = new PropertyDescriptor[this.GetClassView().PropertyViews.Count]; int i = 0; foreach (PropertyView propertyView in this.GetClassView().PropertyViews) { foreach (PropertyDescriptor realPropertyDescriptor in realPropertyDescriptors) { //TODO: fix real property path traversal... if (realPropertyDescriptor.Name.Equals(propertyView.Path)) { wrappedProperties[i] = new WrappedProperty(realPropertyDescriptor, propertyView, attributes); i++; break; } } } properties = new PropertyDescriptorCollection(wrappedProperties); } return properties; }