DevExpress的所有控件都是在失去焦点时才触发EditValueChanged事件。而更改完后,Edit控件仍然拥有焦点,除非点击其他控件才失去焦点。
可以处理空间的EditValueChanging事件,通过EventHandler的e.OldValue和e.NewValue来获取更新前和更新后的值。
注意:EditValueChanging事件中,总是认为EditValue未发生改变,即为OldValue。
如果需要同时根据EditValue值更改另一属性
如更改A.Checked=false时,EditValue也应更改为false,同时当修改EditValue为false时,同步A.Checked
方法如下
public void SetAChecked(bool checked,bool EditChanging=false)
{
if(A.checked!=checked)
{
A.checked=checked;
if(EditValue!=checked&&!EditChanging)
EditValue=checked;
}
}
在EditChanging事件处理程序中,调用
SetAChecked(checked,changing);
而在其余地方调用SetAChecked(checked);