C# 数据网格视图--将列绑定到列表

C# 数据网格视图--将列绑定到列表,c#,.net,data-binding,datagridview,C#,.net,Data Binding,Datagridview,我的c项目包含dataGridView,我有一个包含数据的对象 public class Data { public List<string> list {get;set;} } 数据在程序启动时初始化,列表的长度可以更改。 我想将gridView绑定到对象,当gridView显示gridView中的每个列时,该对象绑定到数据对象中的列表,如下所示: 如果list count=3,则我希望gridView包含3列—column0绑定到列表[0],column01绑定到列表

我的c项目包含dataGridView,我有一个包含数据的对象

public class Data
{
    public List<string> list {get;set;}

}
数据在程序启动时初始化,列表的长度可以更改。 我想将gridView绑定到对象,当gridView显示gridView中的每个列时,该对象绑定到数据对象中的列表,如下所示:

如果list count=3,则我希望gridView包含3列—column0绑定到列表[0],column01绑定到列表[1],依此类推

我认为在加载表单时需要绑定gridView,但如何在代码中做到这一点

<asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="true" >
</asp:GridView>

private static Random _rnd = new Random(DateTime.Now.Millisecond);

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        var columns = _rnd.Next(3, 10);
        var data = new { list = Enumerable.Range(1, columns).ToList() };

        GridView1.DataSource = data.list.Pivot();
        GridView1.DataBind();
    }
}


public static class Extensions
{
    public static DataTable Pivot<T>(this IEnumerable<T> list)
    {
        if (list == null)
            throw new ArgumentNullException("list");

        DataTable result = new DataTable();
        for (int index = 0; index < list.Count(); index++)
        {
            DataColumn column = new DataColumn(string.Format("Column{0}", index), typeof(T));
            result.Columns.Add(column);
        }

        var dataRow = result.NewRow().ItemArray = list.Select(item => (object)item).ToArray();
        result.Rows.Add(dataRow);

        return result;
    }
}