WinForm DataGrid 点滴(1

一、DataGridTableStyle.MappingName

DataGrid 有一个TableStyles属性,包含一个类型为DataTableStyle的对象集合,用来设置DataGrid的样式。DataTableStyle的MappingName属性设置了它与数据源的对应关系,比如我绑定一个TableName为"Table1"的DataTable到DataGrid上,这个DataGrid包含一个DataTableStyle,绑定之后,这个Style的样式还是无法应用,因为它的MappingName还没有设为"Table1"

数据源为DataSet或DataTable时,MappingName为DataTable的TableName。数据源为其它的呢?其实所有可以作为DataSource的对象(支持DataSource的规则见MSDN)有一个统一的方法,即:MappingName = 数据源对象.GetType().Name
1.强类型Array  比如说一个YourClass[] 对象作为数据源绑定到Grid上,则Style的MappingName设为 "YourClass[]",同样,这个值可以通过 对象.GetType().Name  获取
2.ArrayList    MappingName="ArrayList"
3.List<T>    这个MSDN没有说明,比如说一个List<YourClass>对象作为数据源绑定到Grid上,MappingName可以为 "List`1",这个值也可通过 对象.GetType().Name  获取

二、自动设置列宽

代码不写了,下在把实现一个通用Grid样式生成器的思路说一下:

DataGrid.CreateGraphics().MeasureString(string text, Font font) 方法可以测量字符串长度

确定数据源后,每一个列按照如下步骤进行:先从列标题开始,然后逐行遍历数据源中的数据,算出最长的宽度,最后把此列的列宽设为最长宽度加一个自定义值。

DataTable、DataSet逐行遍历数据很简单,如果是自定义集合,可以用反射得出数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值