2

我创建了一个自定义 UITypeEditor。

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

我尝试了以下方法,但无论我如何扭动它,都没有任何反应:

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

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

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

...但首先我不知道如何以通用方式获取相关属性,并且我尝试的所有代码都失败了。即使我尝试以这种方式全局分配 TypeConverter,它也会失败。(不过,将其设置为属性本身的属性是可行的,只是为了排除该部分存在错误。)

4

1 回答 1

2

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

  • 提供者本身
  • 一个ICustomTypeDescriptor
  • aPropertyDescriptor对于你想要操纵的东西

PropertyDescriptor可以让你假装你有额外的属性(或者,通过更直接override的改变Converter,而不用弄乱属性)。

于 2010-03-29T03:52:01.397 回答