如何添加的PropertyDescriptor一类而不是覆盖它们?
-
12-09-2019 - |
题
如果我有一个类实现的 ICustomTypeDescriptor 强>我可以重写的的GetProperties()方式与我的自定义的的PropertyDescriptor完全取代的类的所有属性即可。
但如果我想保持类的现有属性并添加附加属性的类?有没有办法返回一组被添加到现有的类属性自定义属性描述符的?
例如我希望用户能够定义在我的程序自定义属性将在属性网格显示。自定义属性的值将被存储在一个的词典(字符串键,对象值)强>集合,我想附加的的PropertyDescriptor 强>将读取和太并从写入值此集合基于所述键值。
我不认为 IExtenderProvider 会工作,因为它只是增加了一个类的属性到另一个。不过,我需要能够添加和在运行时动态删除的属性。我可以有一个 IExtenderProvider 类也实现 ICustomTypeDescriptor ,以便它增加了属性可以在运行时想通了?
解决方案
应该可以只需添加到当前系列:
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection cols = base.GetProperties(attributes);
cols.Add(); // Add your custom property descriptor here
return cols;
}
不隶属于 StackOverflow