如何绑定列表到datagridview的在C#Windows窗体
问题描述:
我的代码是如何绑定列表<dynamic>到datagridview的在C#Windows窗体
List<dynamic> source=GetDatagridSource();
datagridview1.AutoGenerateColumns = true;
datagridview1.DataSource = source;
这里GetDatagridSource(),其中具有列的动态数字列表的形式返回数据。(列数不固定)。
我想将此结果绑定到datagridview1。
答
我知道这个问题很老,但它可能会帮助有人想要这样做。
创建来自动态对象的DataTable和数据表结合的GridView
public static DataTable GetDataTableFromDynamicObject (List<dynamic> listData)
{
DataTable table = new DataTable ();
if (listData.Count > 0)
{
var firstRow = (IEnumerable<KeyValuePair<string, JToken>>) (JObject) listData.First ();
foreach (KeyValuePair<string, JToken> property in firstRow.OrderBy (x => x.Key))
table.Columns.Add (new DataColumn (property.Key));
foreach (var data in listData)
{
DataRow row = table.NewRow ();
var record = (IEnumerable<KeyValuePair<string, JToken>>) (JObject) data;
foreach (KeyValuePair<string, JToken> kvp in record)
{
row [ kvp.Key ] = kvp.Value;
}
table.Rows.Add (row);
}
}
return table;
}