public void SetValue(T value) { T before = this.value; OnValueChanging?.Invoke(before, ref value); SetValueNoEvent(value); OnValueChanged?.Invoke(before, value); OnValueChangedSimple?.Invoke(); }
protected bool ChangeValue(int value, ValueChangeReason reason) { // 对设置值进行有效性检查 if (value > this.MaxValue) { value = this.MaxValue; } if (value < this.MinValue) { value = this.MinValue; } // 数值没有变化? int oldValue = this.Value; if (value == oldValue) { // 只需要更新数据显示就可以了 if (reason != ValueChangeReason.Keyboard) { SetShownText(ValueToString(value)); } return(true); } // 发出通知,查看是否可以修改? if (OnValueChanging != null) { ValueChangingArgs e = new ValueChangingArgs(reason, oldValue, value); OnValueChanging.Invoke(this, e); if (e.rejectChange) { return(false); } // 可以通过 Changing 事件设置值 value = e.newValue; } // 真正修改数据 if (reason == ValueChangeReason.Keyboard && (!internalChange) && StringToValue(this.txtNumeric.Text, out oldValue) && oldValue == value) { internalChange = true; this.Value = value; internalChange = false; } else { this.Value = value; } return(true); }
public void SetEditValue(object value, bool notify) { bool changed = false; if (INTERNAL__SetEditValue(value, notify, ref changed)) { if (notify && changed) { OnValueChanging?.Invoke(editingId, value); } } else { throw new InvalidExposedPropertyException(editingId); } }
protected void InvokeOnValueChanging(int id, object value) { OnValueChanging?.Invoke(id, value); }