CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

关于Datagrid与字符串数组绑定,不能显示字符串而显示字符串长度问题!!!

楼主showlie(想长膘的小猪……)2003-09-04 17:55:30 在 .NET技术 / C# 提问

为什么字符串数组用Datagrid显示,不能正确的显示字符串内容而是显示字符串的长度?  
  如:string   stuff   =   new   string[]{"one","two","three"};  
          dataGrid.SetDataBinding(stuff,null);  
  在Datagrid中显示的是字符串的长度:3,3,5。  
  而为什么为字符串创建一个包装类后就能解决这个问题:  
  protected   class   Item  
  {  
        public   Item(string   text)  
        {  
            m_text   =   text;  
        }  
        public   string   text  
        {  
            get{   return   m_text};  
        }  
        private   string   m_text;  
  }  
  请问什么是包装类?它又什么作用?这个包装类为什么能解决这个问题?  
  谢谢!非常感谢!!! 问题点数:100、回复次数:9Top

1 楼panyee(快乐王子)回复于 2003-09-04 18:53:42 得分 50

msdn中的说明:  
  如果其他结构中的对象(例如,数组中的元素)公开公共属性,也可以将   DataGrid   控件绑定到这些结构。网格将显示结构中元素的所有公共属性。例如,如果将   DataGrid   控件绑定到一个客户对象数组,则网格将显示这些客户对象的所有公共属性。在某些情况下,这意味着虽然可以绑定到结构,但可能没有实用的应用程序。例如,可以绑定到一个整数数组,但是因为   Integer   数据类型不支持公共属性,所以该网格不能显示任何数据。    
   
  也就是说,   这样绑定时,   会把对象元素的所有公共属性都显示出来    
  字符串只有一个公共属性,   即Length  
   
  你自定义的这个对象,   它有属性text,   所以在绑定时可以显示出它的文本来Top

2 楼panyee(快乐王子)回复于 2003-09-04 18:55:15 得分 0

SetDataBinding   方法来绑定该控件  
   
  如果数据源是数据集,则它可能是窗体中的一个对象或者是   XML   Web   services   传递给窗体的对象。可以绑定到类型化数据集或非类型化数据集。Top

3 楼panyee(快乐王子)回复于 2003-09-04 18:58:25 得分 0

包装类是把数据进行重新的封装,   只暴露出public的属性和方法  
  Top

4 楼xinyulou(心雨楼)回复于 2003-09-04 19:04:32 得分 0

正如快乐王子所说的Top

5 楼showlie(想长膘的小猪……)回复于 2003-09-05 14:52:52 得分 0

to   panyee(快乐王子):  
  你的意思是说,Datagrid只能显示其所绑定的数据源的公共属性,如字符串默认的公共属性是字符串的长度,若要显示字符串内容就要进行get{},那我怎么知道这些数据源的默认的公共属性是什么???  
   
  深表感谢!!!Top

6 楼showlie(想长膘的小猪……)回复于 2003-09-08 08:36:55 得分 0

那个包装类和字符串数组怎么联系起来呢?Top

7 楼nice90(我爱射雕,更爱蓉儿)回复于 2003-09-08 08:57:38 得分 0

mark.Top

8 楼CMIC(大象)回复于 2003-09-08 09:46:57 得分 50

把数组作为数据源DataGrid时,DataGrid会查找数组中对象的第一个共有属性时其长度,所以就显示这个长度值.Top

9 楼CMIC(大象)回复于 2003-09-08 09:47:29 得分 0

把数组作为数据源DataGrid时,DataGrid会查找数组中对象的第一个共有属性时其长度,所以就显示这个长度值.Top

10 楼CMIC(大象)回复于 2003-09-08 10:02:38 得分 0

解决问题方法,建立包装类  
  代码如下:  
  protected   void   retrieveButton_Click (object sender, System.EventArgs   e)  
  {  
  retrieveButton.Enabled   =   false   ;  
   
  Item[] items   =   new   Item[]   {   new   Item   (   "One"   )   ,    
    new   Item   (   "Two"   )   ,    
    new   Item   (   "Three"   )   }   ;  
   
   
  dataGrid.SetDataBinding   (   items   ,   null   )   ;  
  }  
   
  protected   class   Item  
  {  
  public   Item   (   string   text   )  
  {  
  m_text   =   text   ;  
  }  
   
  public   string   Text  
  {  
  get   {   return   m_text   ;   }  
  }  
   
  private   string   m_text   ;  
  }Top

相关问题

  • 按长度分割字符串为字符串数组的最快方法
  • 怎样得到字符串数组的长度?
  • (老问题)字符串数组的长度是多少?
  • 请教字符串数组的求长度的问题,谢谢!
  • 通过分割字符串得到的数组如何计算数组长度?
  • 请问:如何将字符串按一个固定长度分割成多个字符串存入数组中?
  • 根据一个字符串数组(长度不定),如何生成一个唯一的压缩字符串?
  • 如何建立不定长度的数组或可放变长字符串?
  • 如何定义一个整型的数组,取得字符串长度、取得字符串左边几个字符串、取得字符串右边几个字符串的函数分别是什么呀?
  • 字符串指针数组

关键词

  • 属性
  • datagrid
  • 数据
  • 网格
  • 控件
  • 结构
  • 解决
  • 字符串
  • 数组
  • 显示

得分解答快速导航

  • 帖主:showlie
  • panyee
  • CMIC

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo