在下图中,“MyCars”是一个集合。如果对象的属性是一个集合,那么在PropertyGrid中,如果选中该项,则该值显示为字符串“(Collection)”,右侧有一个按钮。
是否可以更改“(收藏)”值?如果是这样,怎么样?我问的原因是因为我已经为我的程序中出现在PropertyGrid中的对象实现了一个自定义UITypeEditor。到目前为止,右侧的按钮出现,但文本值与属性的显示名称相同。我想在那里出现一个不同的字符串。
编辑:对于它的价值,我知道我可以覆盖UITypeEditor的PaintValue
方法并提供一个图标,如果我无法解决这个问题,我可能最终会做,但我仍然喜欢知道是否以及如何更改“(收藏)”文本。
答案 0 :(得分:7)
这篇文章Customized display of collection data in a PropertyGrid可能会有所帮助。
** 更新 **
要提供文章的摘要版本(如果链接不可用),在PropertyGrid中自定义集合内容的显示和描述所涉及的步骤如下:
PropertyDescriptor
派生类来提供自定义属性描述符。DisplayName
和描述属性提供适当的实现。ICustomTypeDescriptor
接口。GetProperties()
方法返回自定义属性描述符的集合。TypeConverter
派生对象,或实现自己的类来自定义域类的文本表示形式。使用TypeConverterAttribute
类将它们分配给适当的类或属性。要全局化PropertyGrid
数据,可以将属性描述符链接在一起(另请参阅Globalized property grid)。