public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context == null || context.Instance == null || !(context.Instance is ContentFile) || provider == null) { return(value); } editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); ListBox lb = new ListBox(); lb.SelectionMode = SelectionMode.One; lb.SelectedValueChanged += OnListBoxSelectedValueChanged; var file = context.Instance as ContentFile; string ext = System.IO.Path.GetExtension(file.Name); var baseType = PipelineHelper.GetImporterOutputType(ext); lb.Items.AddRange(PipelineHelper.GetProcessors(baseType).ToArray()); editorService.DropDownControl(lb); if (lb.SelectedItem == null) { return(value); } return(lb.SelectedItem); }