gpt4 book ai didi

.net - 将 GridView 绑定(bind)到 Dynamic 或 ExpandoObject 对象

转载 作者:行者123 更新时间:2023-12-03 13:40:16 26 4
gpt4 key购买 nike

我正在使用 Rob Conery 的 Massive ORM,但无法绑定(bind)结果 ExpandoObjectGridView .

我确实发现了另一个 Stackoverflow 问题,该问题建议使用名为 impromptu 的框架,但我不确定这是否适用。如果您知道,请提供代码示例以实际转换 ExpandoObject GridView控件可以绑定(bind)到。

最坏的情况,是否有人为 Massive 实现了一个额外的方法(可以共享)来转换结果 ExpandoObject到 POCO?

任何帮助是极大的赞赏。谢谢。

最佳答案

由于无法绑定(bind)到 ExpandoObject,因此可以将数据转换为 DataTable。此扩展方法将为您做到这一点。我可能会将其提交给 Massive。

/// <summary>
/// Extension method to convert dynamic data to a DataTable. Useful for databinding.
/// </summary>
/// <param name="items"></param>
/// <returns>A DataTable with the copied dynamic data.</returns>
public static DataTable ToDataTable(this IEnumerable<dynamic> items) {
var data = items.ToArray();
if (data.Count() == 0) return null;

var dt = new DataTable();
foreach(var key in ((IDictionary<string, object>)data[0]).Keys) {
dt.Columns.Add(key);
}
foreach (var d in data) {
dt.Rows.Add(((IDictionary<string, object>)d).Values.ToArray());
}
return dt;
}

关于.net - 将 GridView 绑定(bind)到 Dynamic 或 ExpandoObject 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com