WPF DateTimeUpDown Control

WPF DateTimeUpDown Control

I am sure you have used a NumericUpDown control in your application in which the current value of the control increases or decreases by using an up and down keys. WPF team has done a great job by extending this feature in WPF Toolkit and now up and down keys can be used on DateTime, decimal, double, and integer data types.

A DateTimeUpDown control allows us to increment or decrement the value of a DateTime using up/down keys, button spinner or the mouse wheel. The increment or decrement value depends on the current value and format of the control.

This article demonstrates how to use the DateTimeUpDown control in a WPF application using C# and XAML.  

Adding Reference to WPF Toolkit Extended Assembly

The DateTimeUpDown control is a part of the WPF Toolkit Extended and does not come with Visual Studio 2010. To use the Calculator control in your application, you must add reference to the WPFToolkit.Extended.dll assembly. You can download Extended WPF Tookit from the CodePlex or you can use the WPFToolkit.Extended.dll available with this download. All you need is the DLL. See Downloads section of this article. You can find more details in my blog Adding Reference to WPF Toolkit Extended.


Creating a DateTimeUpDown

The DateTimeUpDown element represents a WPF DateTimeUpDown control in XAML. The DateTimeUpDown control is defined in the System.Windows.Controls namespace. Listing 1 creates a simple DateTimeUpDown control. The Value property is a DateTime property and represents the date in the control. The Format property defines the format of the date.   

<wpfx:DateTimeUpDown Width="300" Height="30" Value="{Binding LastUpdated}" Format="FullDateTime" />

Listing 1

The default output of Listing 1 generates Figure 1.


Figure 1

Value and Format

The Value property represents the current DateTime value associated with the control. The Format property represents the format of the date and time that is a type of Microsoft.Windows.Controls.DateTimeFormat enumeration. Figure 2 lists various formats available for the control. 


Figure 2

Real World Example

Figure 3 is a real world example where we can select a date time format and based on the selection in the DropDown, the format of the DateTime changes. The Format dropdown lists all the formats available for the DateTime object.


Figure 3


private void Window_Loaded(object sender, RoutedEventArgs e)
    DtUpDown.Value = DateTime.Now;
    DtUpDown.Format = Microsoft.Windows.Controls.DateTimeFormat.FullDateTime;
    FormatDropDown.ItemsSource = System.Enum.GetValues(typeof(Microsoft.Windows.Controls.DateTimeFormat));

private void FormatDropDown_SelectionChanged(object sender, SelectionChangedEventArgs e)
    string str = FormatDropDown.Items[FormatDropDown.SelectedIndex].ToString();
    DtUpDown.Format = (Microsoft.Windows.Controls.DateTimeFormat)Enum.Parse(typeof(Microsoft.Windows.Controls.DateTimeFormat),        FormatDropDown.Items[FormatDropDown.SelectedIndex].ToString());


Listing 3


In this article, we discussed how to use the DateTimeUpDown control in a WPF application using C# and XAML