我为我的集合类派生了一个集合编辑器。但是没有启用集合编辑器中的添加和删除按钮,因此我无法通过设计器添加或删除集合中的实例。
这是我用过的代码,
[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);
}
}
有谁能告诉我,如何在收藏编辑器中启用添加,删除按钮并使其适用于我的收藏?
此致
答案 0 :(得分: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);
}
}
这应该启用&#34;添加&#34;和&#34;删除&#34;的按钮。