如果我有一个实现ICustomTypeDescriptor的类,我可以重写GetProperties()方法,以便用自定义PropertyDescriptors.完全替换该类的所有属性。
但是,如果我想保留类的现有属性并将其他属性附加到类中,该怎么办?是否有方法返回添加到现有类属性中的一组自定义属性描述符?
例如,我希望用户能够在我的程序中定义将显示在属性网格中的自定义属性。自定义属性值的值将存储在一个PropertyDescriptors字典(字符串键,对象值)集合中,并且我希望追加,它也将根据键值从这个集合读取和写入值。
我不认为IExtenderProvider会工作,因为它只将一个类的属性添加到另一个类中。但是我需要能够在运行时动态地添加和删除这些属性。我是否可以有一个IExtenderProvider类,它也实现了ICustomTypeDescriptor,以便它添加的属性可以在运行时被计算出来?
发布于 2009-08-10 20:21:11
只需将以下内容添加到当前集合中:
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection cols = base.GetProperties(attributes);
cols.Add(); // Add your custom property descriptor here
return cols;
}https://stackoverflow.com/questions/1256854
复制相似问题