我想绑定我的自定义类型(使用运行时填充的属性或数据)。由于我在编译时不知道属性的数量,因此我需要创建一个包含它们和它们的值的列表。
稍后,我想将包含此对象的列表绑定到某个网格或 DropDownList。
我知道那些控件通过 DataSource 属性接收一个 DataSource(对象),当我调用 DataBind() 方法时,默认实现使用反射来获取属性和数据并写入该控件。
我有一个类型,让我们想象一下:
class MyDynamicDataObject {
Dictionary<string, object> _properties;
public MyDynamicDataObject() {
_properties = new Dictionary<string, object>();
}
public void Add(string property, object value) {
_properties.Add(property, value);
}
}
但是我需要知道“覆盖”或者说,以抽象的方式返回我的类型的属性,这些属性包含在 _properties 字典数据结构中。
我怎样才能让控件使用 DataBind 并使用默认实现(使用 Type.GetProperties) - 但不是返回我没有的类型属性,而是返回字典中包含的抽象?
谢谢