在运行时在属性上从自定义UITypeEditor内部插入自定义TypeConverter

时间:2010-03-29 03:26:04

标签: c# runtime typeconverter uitypeeditor

我已经创建了一个自定义的UITypeEditor。

我是否可以从里面的 UITypeEditor类中插入一个也将TypeConverter附加到我的属性的属性?

我尝试了以下内容,但无论如何扭转并转动它都没有任何反应:

Attribute[] newAttributes = new Attribute[1];
newAttributes[0] = new TypeConverterAttribute(typeof(BooleanConverter));

现在,上面需要以某种方式附加以下内容:

TypeDescriptor.AddAttributes(context.Instance.PROPERTYNAME, newAttributes);

...但首先我不知道如何以通用的方式访问有问题的财产,而我尝试的所有代码都失败了。即使我尝试以这种方式全局分配TypeConverter,它也会失败。 (将它设置为属性本身的属性虽然有效,但只是为了排除该部分中的错误。)

1 个答案:

答案 0 :(得分:2)

TypeDescriptor允许您向类型对象添加属性(至少就System.ComponentModel而言) - 但不是具体属性。要做到这一点(通常需要TypeDescriptionProvider - 但是,请注意这不是一件容易实现的事情,你需要写下所有内容:

  • 提供者本身
  • ICustomTypeDescriptor
  • a PropertyDescriptor用于您想要操作的内容

PropertyDescriptor允许您假装有其他属性(或override更直接更改Converter,而不会弄乱属性)。