如果我有一个类实现的 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;
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top