c# - TypeDescriptor.CreateProperty 不添加属性

标签 c# data-binding typedescriptor system.componentmodel

我正在尝试使用 TypeDescriptor.CreateProperty 将属性添加到类型,以便在属性网格中显示附加属性,但是未添加此新属性,并且当我对该类型调用 TypeDescriptor.GetProperties 来检查属性时,该属性不存在。

我可能遗漏或忽略了一些东西吗?据我所知,这是一个基本且简单的场景。

电话如下: TypeDescriptor.CreateProperty(typeof (MovieMenuItem), "ExternalMediaLocation", typeof (string), null);

最佳答案

CreateProperty 只是为您返回相关类型的基于反射的 PropertyDescriptor(例如,它不是 AddProperty)。这里的场景是怎样的?如果您只需要在 DataGridView 中显示额外的数据,最简单的选择就是向网格添加额外的未绑定(bind)列。

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

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

如何获取基于列表的元数据的完整规则位于 this answer

关于c# - TypeDescriptor.CreateProperty 不添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1000819/

相关文章:

c# - wpf 边框比标签大得多

asp.net - 如何从aspx页面调用代码隐藏方法?

c# - 在 C# WinForm 控件(文本框、组合框、标签)中显示 SQL 数据库中的数据

.net - .NET 中的双向数据绑定(bind)不起作用,即使使用 INotifyPropertyChanged 对象也是如此

c# - 如何使用 C# 驱动程序更新 cassandra 中的时间戳字段?

c# - 转换为 IEnumerable<动态>?

c# - Null 合并在 LINQ 查询中不起作用

c# - TypeDescriptor.GetProperties(thisType) 返回只写的属性

c# - 如何为枚举列表创建 InstanceDescriptor?

java - 如何从TypeMirror对象获取类型描述符(JNI风格)String(注解处理)