/// <summary> /// Raises the OnSpin event when spinning is initiated by the end-user. /// </summary> /// <param name="e">The event args.</param> protected virtual void OnSpin(SpinEventArgs e) { if (e == null) { throw new ArgumentNullException(nameof(e)); } var handler = Spinned; handler?.Invoke(this, e); if (e.Direction == SpinDirection.Increase) { DoIncrement(); } else { DoDecrement(); } }