Dmi*_*try 3 c# binding devexpress xtragrid winforms
我有一个DevExpress'XtraGrid,它绑定到一组对象.我希望更改在更改时立即进入基础数据源.但默认的DevExpress行为是仅在用户离开单元格时才将新值放入数据源.因此,默认情况下,当用户在单元格中键入"Hello world"时,数据源将一次性接收整个句子.但我希望它能收到"H","他","Hel"等等.
我试图在CellValueChanging事件处理程序中调用PostEditor(),但它没有帮助.还有其他想法吗?
Grid的就地编辑器提供EditValueChanged事件,该事件在最终用户在编辑器中键入或以某种方式更改其值时发生.您可以处理此事件以将当前编辑的值发布到数据源.
所以,我建议你使用以下方法:
//...
gridView.ShownEditor += gridView_ShownEditor;
gridView.HiddenEditor += gridView_HiddenEditor;
}
DevExpress.XtraEditors.BaseEdit gridViewActiveEditor;
void gridView_ShownEditor(object sender, EventArgs e) {
gridViewActiveEditor = gridView.ActiveEditor;
gridViewActiveEditor.EditValueChanged += ActiveEditor_EditValueChanged;
}
void gridView_HiddenEditor(object sender, EventArgs e) {
gridViewActiveEditor.EditValueChanged -= ActiveEditor_EditValueChanged;
}
void ActiveEditor_EditValueChanged(object sender, EventArgs e) {
gridView.PostEditor();
}
Run Code Online (Sandbox Code Playgroud)