我试图使用TypeDescriptor.CreateProperty将属性添加到类型中,以便在属性网格中显示其他属性,但是没有添加这个新属性,并且当我在该类型上调用TypeDescriptor.GetProperties来检查属性时,该属性不存在。
有没有什么我可能遗漏或忽略的地方?据我所知,这是一个基本而简单的场景。
调用如下: TypeDescriptor.CreateProperty(typeof (MovieMenuItem),"ExternalMediaLocation",typeof (string),null);
发布于 2009-06-16 11:22:49
CreateProperty只是为有问题的类型返回一个基于反射的PropertyDescriptor (例如,它不是AddProperty )。这里的场景是什么?如果您只需要在DataGridView中显示额外的数据,最简单的选择就是向网格中添加一个额外的未绑定列。
您可以在运行时扩展类型,但是对于列表,您有两个主要的选择:
ITypedList (如果列表的每个实例可以有不同的列)-请参阅this answerTypeDescriptionProvider -允许您按类型添加自定义属性(最终归结为编写PropertyDescriptor,就像第一个示例一样-但挂钩不同)基于列表的元数据的获取方式的完整规则在this answer中
https://stackoverflow.com/questions/1000819
复制相似问题