更改PropertyGrid中属性项的值

kev*_*628 9 c# propertygrid winforms

在下图中,"MyCars"是一个集合.如果对象的属性是集合,则在PropertyGrid中,如果选择了该项,则该值将显示为字符串"(Collection)",并带有右侧的按钮.

是否可以更改"(收集)"值?如果是这样,怎么样? 我问的原因是因为我已经为我的程序中的PropertyGrid中出现的对象实现了一个自定义UITypeEditor.到目前为止,右侧的按钮出现,但文本值与属性的显示名称相同.我想在那里出现一个不同的字符串.

示例propertygrid.

编辑:对于什么是值得的,我知道我可以覆盖PaintValue从UITypeEditor的方法,并提供一个图标,我最终可能会,如果我解决不了这个问题,这样做,但我还是想知道是否以及如何"(集合)"文本可以更改.

chr*_*dam 8

本文在PropertyGrid中自定义显示集合数据可能会有所帮助.


**更新**

要提供文章的摘要版本(如果链接不可用),在PropertyGrid中自定义集合内容的显示和描述所涉及的步骤如下:

  1. 通过从抽象基类派生类来提供自定义属性描述符PropertyDescriptor.
  2. 覆盖抽象方法和属性.为DisplayName和属性提供适当的实现.
  3. 让您的集合类实现该ICustomTypeDescriptor接口.
  4. 通过该GetProperties()方法返回自定义属性描述符的集合.
  5. (可选)使用TypeConverter.NET提供的派生对象或实现自己的类来自定义域类的文本表示.使用TypeConverterAttribute该类将它们分配给适当的类或属性.

要全局化PropertyGrid数据,可以将属性描述符链接在一起(另请参见全球化属性网格).