首页 > 代码库 > DevExpress gridview下拉框(三)

DevExpress gridview下拉框(三)

    经过前两次的探索和研究(DevExpress gridview下拉框repositoryItemComboBox的使用 ,DevExpress gridview下拉框的再次研究),今天实习工作上终于用到了,但发现并不能满足我的需求。

    当我们绑定了数据源(如:bindingSource1.DataSource = dt)之后,只要我们对gridview单元格数据进行操作,dt也会跟着变。但是我的repositoryItemComboBox绑定了一个Item,Item包含显示值和实际值。Item中的数据不是来源于dt,所以当我repositoryItemComboBox选择一个值后,dt中用于存放显示值和实际值的列是不会跟着改变的。

    经过研究发现以前真的是用来很麻烦的步骤来解决,其实只需要在repositoryItemComboBox的SelectedIndexChanged事件中,给单元格赋值即可,代码如下:

 private void cbo_Equipment_SelectedIndexChanged(object sender, EventArgs e)        {            CboItemEntity item = new CboItemEntity();            try            {                //1.获取下拉框选中值                item = (CboItemEntity)(sender as ComboBoxEdit).SelectedItem;                string text = item.Text.ToString();                string value =http://www.mamicode.com/ item.Value.ToString();                GridView myView = (gc_Equipment.MainView as GridView);
                //1.给当前行对应单元格赋值                myView.SetRowCellValue(myView.FocusedRowHandle, gv_Equipment.Columns["EquipmentName"],text);                myView.SetRowCellValue(myView.FocusedRowHandle, gv_Equipment.Columns["EquipmentId"], value);            }            catch (Exception ex)            {                XtraMessageBox.Show(ex.Message, "提示");            }        }

从代码可以看出,当我改变选中值事,对应给单元格内容赋值,因此dt也会变了。而且这样些,也不会出现Iconvertible问题了。

DevExpress gridview下拉框(三)