我怎样才能使用List 与DataGridView.DataSource一样? [关闭]

问题描述 投票:-1回答:1

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

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

简单地说,如何在我的DataGridView中正确使用List<dynamic>对象?

c# .net datagridview dapper
1个回答
7
投票

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

所以你有几个选择:

  • 将结果水合为具体类型而不是dynamic
  • 指定要在DataGridView中显示的列,而不是使用默认绑定。
  • 使用类似于DataTable的东西将动态结果转换为this answer
© www.soinside.com 2019 - 2024. All rights reserved.