Как включить кнопку добавления и удаления редактора коллекции
Я получил редактор коллекции для своего класса коллекции. но кнопка добавления и удаления в редакторе коллекции не включена, поэтому я не мог добавить или удалить экземпляр в коллекции через конструктор.
Вот код, который я использовал,
[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);
}
}
Это должно включить кнопки "Добавить" и "Удалить".