示例#1
0
        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);
        }