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 = 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)