TypeDescriptor.CreateProperty 不添加属性
-
05-07-2019 - |
题
我正在尝试使用 TypeDescriptor.CreateProperty 将属性添加到类型,以便在属性网格中显示附加属性,但是未添加此新属性,当我对该类型调用 TypeDescriptor.GetProperties 来检查属性时,此属性不存在。
我可能会遗漏或忽略一些东西吗?据我所知,这是一个基本且简单的场景。
这是电话:TypeDescriptor.CreateProperty(typeof (MovieMenuItem), "ExternalMediaLocation", typeof (string), null);
解决方案
CreateProperty
只是给你一个基于反射的 PropertyDescriptor
对于有问题的类型(不是 AddProperty
, , 例如)。这里的场景是怎样的?如果您只需要显示额外的数据 DataGridView
, ,最简单的选择就是向网格中添加一个额外的未绑定列。
你 能 在运行时扩展类型,但对于列表,您有两个主要选项:
ITypedList
(如果列表的每个实例可以有不同的列) - 请参阅 这个答案TypeDescriptionProvider
- 允许您为每种类型添加自定义属性(最终归结为编写一个PropertyDescriptor
, ,就像第一个例子 - 但不同的钩子)
如何获取基于列表的元数据的完整规则位于 这个答案
不隶属于 StackOverflow