实现: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.保存选中值到datatable
Table_Choose.Rows[dataIndex]["OriginColumn"] = text;
gridControl2.DataSource = Table_Choose;
gridControl2.RefreshDataSource();
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "提示");
}
}
}