今天研究了下DataGrid的界面,有几个疑问,来这里请大家帮帮忙:1.DataGrid有个TableStyles是他的表的样式集合,通过MappingName属性设置成绑定的数据源表名,可以设置这个样式控制这个数据源中数据的显示,但是我不明白的是,一个DataGrid不是只可以帮定一个表么?为什么他有个表的样式集合,因为就算有其它样式,又如何显示呢?因为似乎只要样式的MappingName属性设置与绑定的表名不一样,就没有用吧?2.我将我写好的一个控件(比如多选框)加入DataGrid的某个列样式中,如何控制让这个多选框显示在中间,因为默认是在左边。
我通过列样式的Alignment这个属性只能控制文本的对齐,无法控制控件。3.我想在DataGrid的某列中放置日期选择控件,但是如果简单的将日期控件加如列样式中,只能让控件显示在单元格内,而无法显示全部日期控件,如何能达到点单元格,会在单元格下显示一个日历。问题比较多,希望能知道其中答案的朋友帮帮忙,万分感谢!

解决方案 »

  1.   


    我做的MIS项目很少直接使用DataGridView的!!!,大家使用第三方控件...  GridX...
      

  2.   

    DataGrid对你说的这些功能支持较弱,用第三方控件吧
      

  3.   

    1.DataGrid有个TableStyles是他的表的样式集合,通过MappingName属性设置成绑定的数据源表名,可以设置这个样式控制这个数据源中数据的显示,但是我不明白的是,一个DataGrid不是只可以帮定一个表么?为什么他有个表的样式集合,因为就算有其它样式,又如何显示呢?因为似乎只要样式的MappingName属性设置与绑定的表名不一样,就没有用吧? --正如你所说,DataGrid只可以绑定一个表(当然,可以是视图返回的结果作为临时表),有多个样式集和它没有冲突,切换不同的显示样式即可变换显示样式。MappingName属性的确要与表名一致,否则不会出结果。2.我将我写好的一个控件(比如多选框)加入DataGrid的某个列样式中,如何控制让这个多选框显示在中间,因为默认是在左边。 
    我通过列样式的Alignment这个属性只能控制文本的对齐,无法控制控件。 
    --似乎这个问题和datagrid本身没有关系,而是和你的自定义控件有关系。
    所以,你只要设置好了你的自定义控件就不用再去设置DATAGRID了。
    3.我想在DataGrid的某列中放置日期选择控件,但是如果简单的将日期控件加如列样式中,只能让控件显示在单元格内,而无法显示全部日期控件,如何能达到点单元格,会在单元格下显示一个日历。 
    --似乎LZ还不明白如何创建自定义列,所以该搜索下这方面的文章,记得韩睿写的一些BLOG有详细讲解。
    因为好久不用DATAGRID了,所以很多东西我也记不清楚,所以给不出具体的实现代码或例子,也请LZ谅解了。
      

  4.   

    可以参考这里,一些常见的问题都能在这里找到答案
    http://www.syncfusion.com/FAQ/windowsforms/faq_c44c.aspx
      

  5.   

    TO:csharp_start 谢谢您的回答!对于第一个问题,既然一个DATAGRID只能绑定一个表,每个样式又只能设置MappingName属性于表名一至,而又不能设置MappingName相同,那就根本用不了多个样式吧?