如何将 List<dynamic> 绑定到 c# windows 窗体中的 datagridview
How to bind List<dynamic> to datagridview in c# windows form
我的密码是
List<dynamic> source=GetDatagridSource();
datagridview1.AutoGenerateColumns = true;
datagridview1.DataSource = source;
此处GetDatagridSource() return List形式的数据,列数是动态的(列数不固定)。
我想将此结果绑定到 datagridview1。
我知道这个问题已经过时了,但它可能会对想要这样做的人有所帮助。
从动态对象创建 DataTable 并将 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;
}
我的密码是
List<dynamic> source=GetDatagridSource();
datagridview1.AutoGenerateColumns = true;
datagridview1.DataSource = source;
此处GetDatagridSource() return List形式的数据,列数是动态的(列数不固定)。
我想将此结果绑定到 datagridview1。
我知道这个问题已经过时了,但它可能会对想要这样做的人有所帮助。
从动态对象创建 DataTable 并将 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;
}