public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context != null && context.Instance != null && provider != null) { IWindowsFormsEditorService service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (service != null) { GoogleMapsMarkerCollection mc = context.Instance as GoogleMapsMarkerCollection; if (mc != null) { GoogleMapsMarker marker = value as GoogleMapsMarker; if (marker != null) { service.CloseDropDown(); CommandSelectControl isc = new CommandSelectControl(service); service.DropDownControl(isc); if (isc.SelectedCommand != null) { if (isc.SelectedCommand.CommandId == EnumCommand.Delete) { mc.Remove(marker); } else if (isc.SelectedCommand.CommandId == EnumCommand.New) { mc.Add(new GoogleMapsMarker(mc.Owner)); } value = marker; } } } } } return(value); }
public PropertyDescriptorMapMarker(GoogleMapsMarker owner) : base(owner.uuid, new Attribute[] { new TypeConverterAttribute(typeof(ExpandableObjectConverter)), new EditorAttribute(typeof(TypeEditorDeleteMapMarker), typeof(UITypeEditor)), new RefreshPropertiesAttribute(RefreshProperties.All) }) { _marker = owner; }