Category / Section
How to increment and decrement a value when UseNullOption is true in WPF UpDown control?
1 min read
You cannot increment or decrement the value by up and down buttons when Value is Null by default. Increment or decrement a value from the null in WPF UpDown can be achieved by handling PreviewMouseDown, PreivewKeyDown and MouseWheel events. In this sample, we have reset the value to 0(zero) using the events mentioned above. The following code has explained the same.
XAML
<syncfusion:UpDown Name="updown" Height="30" PreviewKeyDown="updown_PreviewKeyDown" VerticalAlignment="Center" HorizontalAlignment="Center" MouseWheel="updown_MouseWheel" Width="110" Value="{x:Null}" TextAlignment="Right" UseNullOption="True" IsScrollingOnCircle="True"> </syncfusion:UpDown>
C#
public MainWindow() { InitializeComponent(); PreviewMouseDown += new MouseButtonEventHandler(MainWindow_PreviewMouseDown); } RepeatButton upbutton = null; RepeatButton downbutton = null; void MainWindow_PreviewMouseDown(object sender, MouseButtonEventArgs e) { if (upbutton == null && downbutton == null) { upbutton = updown.Template.FindName("upbutton", updown) as RepeatButton; downbutton = updown.Template.FindName("downbutton", updown) as RepeatButton; if (upbutton != null) upbutton.PreviewMouseDown += new MouseButtonEventHandler(upbutton_PreviewMouseDown); if (downbutton != null) downbutton.PreviewMouseDown += new MouseButtonEventHandler(upbutton_PreviewMouseDown); } } void upbutton_PreviewMouseDown(object sender, MouseButtonEventArgs e) { if (updown.Value == null && updown.UseNullOption) updown.Value = 0; } private void updown_PreviewKeyDown(object sender, KeyEventArgs e) { if ((e.Key == Key.Up || e.Key == Key.Down) && updown.Value == null && updown.UseNullOption) updown.Value = 0; } private void updown_MouseWheel(object sender, MouseWheelEventArgs e) { if (updown.Value == null && updown.UseNullOption) updown.Value = 0; }