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的类型