LIVE

导航

一个数据源赋给多个COMBOX控件绑定,改变一个COMBOX值时其它几个也跟着改变(已有解决方案)

     问题:
     下面代码实现一个数据表中所有列的信息绑定在KEYCOLUMN,VALUESCOLUMN,DESCCOLUMN三个COMBOX控件上,方便定义一个数据字典的表让其选择KEYCOLUMN,VALUESCOLUMN,DESCCOLUMN三个列分别对应数据表的那个列
  绑定后发现只要改变一个COMBOX值时其它几个也跟着改变
                   this.CO_KEYCOLUMN.DataSource = this._persistCustomDataTable.Columns;
                    this.CO_KEYCOLUMN.DisplayMember = "Name";
                    this.CO_KEYCOLUMN.ValueMember = "ID";
                    this.CB_VALUESCOLUMN.DataSource =this._persistCustomDataTable.Columns;
                    this.CB_VALUESCOLUMN.DisplayMember = "Name";
                    this.CB_VALUESCOLUMN.ValueMember = "ID";
                    this.CB_DESCCOLUMN.DataSource =this._persistCustomDataTable.Columns;
                    this.CB_DESCCOLUMN.DisplayMember = "Name";
                    this.CB_DESCCOLUMN.ValueMember = "ID";
注:this._persistCustomDataTable.Columns为数据表列的集合

解决后的程序   
1.重新定义注:this._persistCustomDataTable.Columns为数据表列的集合分别为每个COMBOX绑定独立的数据源
                    List<UDCP.Core.DataColumn> comboxDataColumn1 = new  List<UDCP.Core.DataColumn>();
                    List<UDCP.Core.DataColumn> comboxDataColumn2 = new List<UDCP.Core.DataColumn>();
                    List<UDCP.Core.DataColumn> comboxDataColumn3 = new List<UDCP.Core.DataColumn>();
                    comboxDataColumn1.InsertRange(0,this._persistCustomDataTable.Columns);
                    comboxDataColumn2.InsertRange(0, this._persistCustomDataTable.Columns);
                    comboxDataColumn3.InsertRange(0, this._persistCustomDataTable.Columns);

                    //值列,显示列,描述列
                    this.CO_KEYCOLUMN.DataSource = comboxDataColumn1;//this._persistCustomDataTable.Columns;
                    this.CO_KEYCOLUMN.DisplayMember = "Name";
                    this.CO_KEYCOLUMN.ValueMember = "ID";
                    this.CB_VALUESCOLUMN.DataSource = comboxDataColumn2;//this._persistCustomDataTable.Columns;
                    this.CB_VALUESCOLUMN.DisplayMember = "Name";
                    this.CB_VALUESCOLUMN.ValueMember = "ID";
                    this.CB_DESCCOLUMN.DataSource =comboxDataColumn3; //this._persistCustomDataTable.Columns;
                    this.CB_DESCCOLUMN.DisplayMember = "Name";
                    this.CB_DESCCOLUMN.ValueMember = "ID";

posted on 2007-01-17 16:56  2017_LIVE  阅读(4018)  评论(1编辑  收藏  举报