如何将 GridView 数据绑定到如下类?
public class GenericEntity
{
private readonly Dictionary<string, object> properties = new Dictionary<string, object>();
public object this[string propertyName]
{
get
{
if (properties.ContainsKey(propertyName))
return properties[propertyName];
else
return null;
}
set
{
if (value == null)
properties.Remove(propertyName);
else
properties[propertyName] = value;
}
}
}
此类可能有任意数量的属性,并且无法在编译时知道它们中的任何一个,只能在运行时知道,这是因为属性直接映射到来自 BD 的结果集的列。
如何将此 GenericEntity 类的列表数据绑定到 GridView?我尝试了以下方法,但出现了“类不包含具有名称的属性...”的异常
var newColumn = new BoundField();
newColumn.HeaderText = resultsetDescription.FieldDisplayName;
newColumn.DataField = resultsetDescription.FieldName;
myGridView.Columns.Add(newColumn);
myGridView.DataSource = GetListOfGenericEntities(args);
myGridView.DataBind();
编辑:
我已经实现了这个SO 答案中提到的方法,但它仍然抛出属性异常......