如何像使用DataGridView.DataSource一样使用List <dynamic>?

时间:2015-11-20 14:12:43

标签: c# .net datagridview dapper

我正在尝试将Pages绑定到DataGridView DataSource属性。虽然编译时没有错误,但也没有显示任何列。

如果我预先创建列,我会显示要显示的行,但其中没有数据。

简单地说,如何在DataGridView中正确使用Sub Macro1() ActiveSheet.Range("$G$1:$G$10").RemoveDuplicates Columns:=1, Header:=xlNo End Sub 对象?

1 个答案:

答案 0 :(得分:7)

如果我没记错的话,Dapper的动态查询会返回ExpandoObject的集合,可让您动态访问person.Name等属性,但基础对象实际上没有Name属性。它使用运行时绑定从内部键/值字典中提取数据。由于DataGridView的默认数据绑定使用反射来获取对象的属性,因此它找不到查询返回的列。

所以你有几个选择:

  • 将结果水合为具体类型,而不是dynamic
  • 指定要在DataGridView中显示的列,而不是使用默认绑定。
  • 使用与this answer类似的内容将动态结果转换为DataTable