Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TypeDescriptor.CreateProperty不';不要添加属性_C#_Data Binding_Typedescriptor_System.componentmodel - Fatal编程技术网

C# TypeDescriptor.CreateProperty不';不要添加属性

C# TypeDescriptor.CreateProperty不';不要添加属性,c#,data-binding,typedescriptor,system.componentmodel,C#,Data Binding,Typedescriptor,System.componentmodel,我正在尝试使用TypeDescriptor.CreateProperty向类型添加属性,以便在属性网格中显示其他属性,但是未添加此新属性,并且当我调用该类型上的TypeDescriptor.GetProperties以检查属性时,此属性不存在 有什么东西我可能遗漏或忽略了吗?据我记忆所及,这是一个基本而简单的场景 电话如下: CreateProperty(typeof(MovieMenuItem),“ExternalMediaLocation”,typeof(string),null) Crea

我正在尝试使用TypeDescriptor.CreateProperty向类型添加属性,以便在属性网格中显示其他属性,但是未添加此新属性,并且当我调用该类型上的TypeDescriptor.GetProperties以检查属性时,此属性不存在

有什么东西我可能遗漏或忽略了吗?据我记忆所及,这是一个基本而简单的场景

电话如下:
CreateProperty(typeof(MovieMenuItem),“ExternalMediaLocation”,typeof(string),null)

CreateProperty
只是为所讨论的类型返回一个基于反射的
PropertyDescriptor
(例如,它不是
AddProperty
)。这里的情况是什么?如果您只需要在
DataGridView
中显示额外的数据,最简单的选择就是向网格中添加额外的未绑定列

您可以在运行时扩展类型,但对于列表,您有两个主要选项:

  • ITypedList
    (如果列表的每个实例都可以有不同的列)-请参阅
  • TypeDescriptionProvider
    -允许您为每种类型添加自定义属性(最终归结为编写一个
    PropertyDescriptor
    ,就像第一个示例一样-但不同的钩子)

关于如何获取基于列表的元数据的完整规则,请参见

如何发布一个不起作用的代码示例?我想将其添加到一个对象中,该对象自上次“大量”使用组件模型以来一直使用PropertyGrid控件进行编辑。。。类型描述提供程序是缺少的链接。谢谢