ASP.Net GridView:BoundField使用索引器而不是属性

ASP.Net GridView:BoundField使用索引器而不是属性,asp.net,gridview,.net-4.0,Asp.net,Gridview,.net 4.0,我有一个类,它的大部分数据都包含在字典中,如下所示: public class Document { public string this[string key] { get { return (details.ContainsKey(key)) ? details[key] : null; } } public long DocumentId { get; set; } private Dictionary<string, st

我有一个类,它的大部分数据都包含在字典中,如下所示:

public class Document
{
    public string this[string key]
    {
        get { return (details.ContainsKey(key)) ? details[key] : null; }
    }

    public long DocumentId { get; set; }

    private Dictionary<string, string> details = new Dictionary<string, string>();
    public Dictionary<string, string> Details { get { return details; } }
}
这不起作用,因为“DocumentName”不是
文档的属性。我知道如果这些列是硬编码的,我可以使用页面上的
让它查看索引器,但是我如何通过代码来实现这一点呢


或者我必须创建一个模板列,添加一个标签,并在每行创建时填充它?

是的,按照您的建议使用模板,并从代码隐藏填充是一种方法。另一种方法是通过编程从提供的数据生成DataTable对象,并将其绑定到网格。这有时也是一个有用的解决方案。

我想这是我必须走的路线。。没有我想要的那么干净,但它必须工作
BoundField bf = new BoundField();
bf.DataField = "DocumentName";
bf.HeaderText = "Document Name";

myGridView.Columns.Add(bf);