您的位置:程序门 -> .net技术 -> c#



急,有谁在winform中用datagrid绑定业务实体对象.


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


急,有谁在winform中用datagrid绑定业务实体对象.[已结贴,结贴人:windsea123]
发表于:2007-03-08 09:35:59 楼主
public   class   materialinfo
{
        string   _id;
        string   _name;
       
        public   stirng   id
        {
              get{....}
              set{....}
        }
       
        public   string   name
        {
              get{....}
              set{....}
        }
}

public   class   a
{
        string   _id;
        materialinfo   _material;
       
        public   stirng   id
        {
              get{....}
              set{....}
        }
       
        public   materialinfo   material
        {
              get{....}
              set{....}
        }
}

在winform中如何绑定数据.
假设   a.id=1;
          a.material.id   =   "00001 ";
          a.material.name   =   "物料名称 ";
如何将数据绑定到datagrid或是datagridview得到一行数据(1,00001,物料名称1).
datagrid是否直接支持,如果支持怎么做。
要是不支持,有什么好的方法解决这个问题?

发表于:2007-03-08 09:50:321楼 得分:30
datagridviewcell.tag  

    可以将任何对象绑定


使用时转换回来就行
发表于:2007-03-08 09:56:022楼 得分:5
arraylist   al   =   new   arraylist();
al.add( "你的class ");
...
你建一个datagrid是可以这样的datagrid.datasource   =   al;或是等于你的class数组.
发表于:2007-03-08 09:58:123楼 得分:0
private   void   datagridview1_cellpainting(object   sender,   datagridviewcellpaintingeventargs   e)
{
        if   (this.datagridview1.columns[ "contactname "].index   ==
                e.columnindex   &&   e.rowindex   > =   0)
        {
          this.datagridview.rows[e.rowindex][e.columnindex].tag   =   a(你的值_)
        }
}

发表于:2007-03-08 10:28:144楼 得分:0
to:csshooter
datagridviewcell.tag   值怎么写
不知道datagrid能不能用这种方法.
发表于:2007-03-08 10:30:285楼 得分:50
没做过,能不能这样改变下思路...

public   class   a
{
        string   _id;
        materialinfo   _material;
       
        public   stirng   id
        {
              get{....}
              set{....}
        }
       
        public   materialinfo   material
        {
              set{....}//这里设置成只写
        }

        //另外增加两个只读属性
        public   string   materialinforid
        {
                get{return   _material.id;}
        }
        public   string   materialname
        {
                get{return   _material.name;}
        }
}

这样非嵌套的对象绑定,楼主应该知道...
发表于:2007-03-08 10:32:106楼 得分:0
对于非嵌套对象的绑定,可见参见msdn:

ms-help://ms.msdnqtr.v80.chs/ms.msdn.v80/ms.visualstudio.v80.chs/dv_fxmclictl/html/cb8f29fa-577e-4e2b-883f-3a01c6189b9c.htm
发表于:2007-03-08 10:34:507楼 得分:15
写个函数转换成table
发表于:2007-03-08 10:54:198楼 得分:0
for   example:

public   partial   class   form1   :   form
        {
                private   bindingsource   bs   =   new   bindingsource();
                public   form1()
                {
                        initializecomponent();
                }

                private   void   button1_click(object   sender,   eventargs   e)
                {
                        bs.add(new   a( "111 ",   new   materialinfo( "111 ",   "aaa ")));
                        bs.add(new   a( "222 ",   new   materialinfo( "222 ",   "bbb ")));
                        this.datagridview1.datasource   =   bs;
                }
        }
        public   class   materialinfo
        {
                string   _id;
                string   _name;

                public   materialinfo(string   id,   string   name)
                {
                        this._id   =   id;
                        this._name   =   name;
                }
                public   string   id
                {
                        get   {   return   this._id;   }
                        set   {   this._id   =   value;   }
                }

                public   string   name
                {
                        get   {   return   this._name;   }
                        set   {   this._name   =   value;   }
                }
        }
        public   class   a
        {
                string   _id;
                materialinfo   _material;

                public   a(string   id,   materialinfo   material)
                {
                        this._id   =   id;
                        this._material   =   material;
                }
                public   string   id
                {
                        get   {   return   this._id;   }
                        set   {   this._id   =   value;   }
                }

                public   materialinfo   material
                {
                        set   {   this._material   =   value;   }//这里设置成只写
                }

                //另外增加两个只读属性
                public   string   materialinforid
                {
                        get   {   return   _material.id;   }
                }
                public   string   materialname
                {
                        get   {   return   _material.name;   }
                }
        }
发表于:2007-03-08 10:59:079楼 得分:0
谢谢各位.
snowlover的方法应该是很好的解决方法了.


快速检索

最新资讯
热门点击