DevExpress XtraGrid GridView的CellValueChanged事件的问题

修改Cell的Value后,并不能即时的更改数据源,需要离开焦点。

解决方法是,绑定一个RepositoryItem到Columns,调用这个Item的EditValueChanged事件

代码如下

      RepositoryItemTextEdit countTxt = new RepositoryItemTextEdit();

      countTxt.AutoHeight = false;
       countTxt.EditValueChanged += new EventHandler(countTxt_EditValueChanged); //注册事件
      GridView1.Columns["ChargeCount"].ColumnEdit = countTxt; //绑定RepositoryItem到Columns

 

        void countTxt_EditValueChanged(object sender, EventArgs e)
        {
          GridView1.PostEditor(); //关键,将GridView的值提交到数据源
        }

如果要获取RepositoryItem的值,可以在事件中这样写

                    TextEdit txt = sender as TextEdit;
                    string value = txt.EditValue.ToString();

具体转换成什么样的BaseEdit,可以跟踪事件,查看sender的类型

原文地址:https://www.cnblogs.com/xyz0835/p/2490550.html