实现:GridControl中的列表包括三列:名称、目标栏位、源栏位


第一步
在RunDesigner中设置
1、三列的FieldName和绑定的DataTable必须一致
2、且设置OptionsView—>ColumnAutoWidth=false;
3、第三列的ColumnEdit添加repositoryComboBoxEdit
第二步
用代码给repositoryComboxEdit添加下拉选项,设置了CboItemEntity类
private void AddItems(string[] columnName){int length = columnName.Length;CboItemEntity itemnull = new CboItemEntity();itemnull.Text = string.Empty;itemnull.Value = 0;for (int i = 0; i < length; i++){CboItemEntity item = new CboItemEntity();item.Text = columnName[i];item.Value = i+1;repositoryItemComboBox1.Items.Add(item);}}public class CboItemEntity{private object _text = 0;private object _Value = "";////// 显示值///public object Text{get { return this._text; }set { this._text = value; }}////// 对象值///public object Value{get { return this._Value; }set { this._Value = value; }}public override string ToString(){return this.Text.ToString();}}
第三步:初始化DataTable绑定
dt.Columns.Add("Name", typeof(string));dt.Columns.Add("AimColumn", typeof(string));dt.Columns.Add("OriginColumn", typeof(string));dt.Rows.Add(new object[]{"name","aimcolumn","origincolumn"});//根据需求自行添加//dt.Rows.Add(new object[]{"name","aimcolumn","origincolumn"});//gridControl绑定this.gridControl2.DataSource = Table_Choose;this.gridView2.BestFitColumns();//绑定下拉框改变事件repositoryItemComboBox1.SelectedIndexChanged += new EventHandler(repositoryItemComboBox1_SelectedIndexChanged);repositoryItemComboBox1.ParseEditValue += new DevExpress.XtraEditors.Controls.ConvertEditValueEventHandler(repositoryItemComboBox1_ParseEditValue);
第四步:下拉菜单的事件
void repositoryItemComboBox1_ParseEditValue(object sender, DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e){e.Value = e.Value.ToString();e.Handled = true;}void repositoryItemComboBox1_SelectedIndexChanged(object sender, EventArgs e){CboItemEntity item = new CboItemEntity();try{//1.获取下拉框选中值item = (CboItemEntity)(sender as ComboBoxEdit).SelectedItem;string text = item.Text.ToString();int value = (int)item.Value;//2.获取gridview选中的行GridView myView = (gridControl2.MainView as GridView);int dataIndex = myView.GetDataSourceRowIndex(myView.FocusedRowHandle);//3.保存选中值到datatableTable_Choose.Rows[dataIndex]["OriginColumn"] = text;gridControl2.DataSource = Table_Choose;gridControl2.RefreshDataSource();}catch (Exception ex){XtraMessageBox.Show(ex.Message, "提示");}}}
