Как включить кнопку добавления и удаления редактора коллекции

Я получил редактор коллекции для своего класса коллекции. но кнопка добавления и удаления в редакторе коллекции не включена, поэтому я не мог добавить или удалить экземпляр в коллекции через конструктор.

Вот код, который я использовал,

[EditorAttribute(typeof(MyCollectionEditor), typeof(UITypeEditor))]
public MyCollection : IDisposable, ICollection
{  
    List<MyClass> list= new List<MyClass>();

    public Add(MyClass myclass)
    {

    }

    ......


 }


 public class MyCollectionEditor : CollectionEditor
 {
    public MyCollectionEditor ()
       : base(typeof(MyCollection))
    {
    }


    protected override Type CreateCollectionItemType()
    {
        return typeof(MyCollection);
    }

    public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
    {
        return base.EditValue(context, provider, value);
    }
 }

Может кто-нибудь, пожалуйста, дайте мне знать, как включить кнопки добавления, удаления в редакторе коллекций и заставить его работать для моей коллекции?

С Уважением,

1 ответ

Попробуй это:

 public class MyCollectionEditor : CollectionEditor
    {
        public MyCollectionEditor()
            : base(typeof(MyCollection))
        {
        }

        protected override CollectionForm CreateCollectionForm()
        {
            CollectionForm form = base.CreateCollectionForm();
            Type type = form.GetType();
            PropertyInfo propertyInfo = type.GetProperty("CollectionEditable", BindingFlags.Instance | BindingFlags.NonPublic);
            propertyInfo.SetValue(form, true);
            return form;
        }

        protected override Type CreateCollectionItemType()
        {
            return typeof(MyCollection);
        }

        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            return base.EditValue(context, provider, value);
        }
    }

Это должно включить кнопки "Добавить" и "Удалить".

Другие вопросы по тегам