This project has moved. For the latest updates, please go here.


The DoubleUpDown control provides a TextBox with button spinners that allow incrementing and decrementing Nullable<Double> values by using the spinner buttons, keyboard up/down arrows, or mouse wheel.



When using the DoubleUpDown in data binding scenarios, bind your object's value to the Value property. You can specify how much to increment the value by setting the Increment property. You can control the minimum and maximum allowed values by setting the Minimum and the Maximum properties. Use IsReadOnly to determine whether the control is read only. If you would like to get the actual formatted string representation of the value, you can use the Text property.

Applying FormatStrings

     <xctk:DoubleUpDown Value="1564.6749586" />

Floating Point:
     <xctk:DoubleUpDown FormatString="F3" Value="1564.6749586" Increment=".001"  Maximum="200000.599" />

     <xctk:DoubleUpDown FormatString="C2" Value="1564.6749586" Increment=".5" Maximum="5000.50" Minimum="50.01" />

Supported Format Strings

Format Specifier Name
C Currency
F Fixed Point
G General
N Number
P Percent


You can provide a Watermark to show text in place of a NULL Value.

     <xctk:DoubleUpDown Watermark="Enter Double" />


Property Description
AllowSpin Gets or sets the ability to perform increment/decrement operations via the keyboard, button spinners, or mouse wheel. (Inherited from UpDownBase)
AllowTextInput Determines if the editable part of the control can be edited. The editable part does not include buttons or spinners, it is typically the text part.
AutoMoveFocus Gets or sets if the focus can move from this control to other controls. (Inherited from NumericUpDown)
AutoSelectBehavior Gets or sets a value indicating how the content of the auto-select text box is selected (Never or OnFocus). By default, OnFocus. (Inherited from NumericUpDown)
ButtonSpinnerLocation Gets/Sets the location of the Up/Down buttons (either on the left or on the right) of numericUpDown controls.
ClipValueToMinMax Gets or sets if the value should be clipped when minimum/maximum is reached. (Inherited from UpDownBase)
CultureInfo Gets or sets the current CultureInfo. (Inherited from InputBase)
DefaultValue Gets or sets the value to use when the Value is null and an increment/decrement operation is performed. (Inherited from UpDownBase)
DisplayDefaultValueOnEmptyText Gets or sets if the defaultValue should be displayed when the Text is empty. (Inherited from UpDownBase)
FormatString Gets or sets the dispaly format of the Value.
Increment Gets or sets the amount in which to increment the value. (Inherited from NumericUpDown)
IsReadOnly Gets or sets if the control is read only. (Inherited from InputBase)
Maximum Gets or sets the maximum allowed value. (Inherited from UpDownBase)
Minimum Gets or sets the minimum allowed value. (Inherited from UpDownBase)
MouseWheelActiveTrigger Gets or sets when the MouseWheel is active (Focused, FocusedMouseOver, MouseOver, Disabled). By default, FocusedMouseOver. (Inherited from UpDownBase).
ParsingNumberStyle Gets or sets the parsing style (AllowLeadingWhite, Float, AllowHexSpecifier, ...). By default, Any. (Inherited from CommonNumericUpDown)
ShowButtonSpinner Gets or sets if the ButtonSpinners are visibles. (Inherited from UpDownBase)
Text Gets or sets the formated string representation of the value. (Inherited from InputBase)
TextAlignment Gets or sets the alignment of the Text (Left, Right, Center, Justify). By default, Left. (Inherited from InputBase)
UpdateValueOnEnterKey Gets or sets a value indicating whether the synchronization between "Value" and "Text" should be done only on the Enter key press (and lost focus). (Inherited from UpDownBase)
Value Gets or sets the numeric value. (Inherited from UpDownBase)
Watermark Gets or sets the object to use as a watermark if the Value is null. (Inherited from InputBase)
WatermarkTemplate Gets or sets the DatTemplate to use for the Watermark. (Inherited from InputBase)


Event Description
InputValidationError Occurs when the Text cannot be converted to a valid Value. (Inherited from UpDownBase)
ValueChanged Raised when the Value changes. (Inherited from UpDownBase)

Support this project, check out the Plus Edition.

Last edited Sep 3, 2015 at 3:14 PM by BoucherS, version 14


liujunhome May 20 at 1:27 AM 
I need help,thanks!
toolkit control DoubleUpDown is error!
TypeInitializationException: “Mocks.Xceed_Wpf_Toolkit_CommonNumericUpDown`1_3_151988392”的类型初始值设定项引发异常.

BoucherS Mar 9, 2016 at 1:08 PM 
Simply change the CultureInfo on the control, with a Currency FormatString :
<xctk:DoubleUpDown Value="12"
<xctk:DoubleUpDown Value="12"

fbackerfs Mar 9, 2016 at 12:19 PM 
Or even better "{N2} SEK" or "€ {N2}" to get value with 2 decimals.

fbackerfs Mar 9, 2016 at 12:17 PM 
how can I set the currency type? E.g. change $ to €. And many currencies has the value in the end and not beginning as 12 SEK. Possible to put a custom formatString? As "{0} SEK" or "€ {0}"

BoucherS Mar 13, 2015 at 5:50 PM 

You can use a FormatString in the DoubleUpDown. Something like : <xctk:DoubleUpDown Value="2.5" FormatString="0.0'h'"/>

D4rthB4n3 Mar 13, 2015 at 1:50 PM 
Im working on a project where i want to use a double up down but not for a currency rather then a time like 8.5h is something like that possible (maybe i just got the wron control?).


BoucherS Sep 25, 2014 at 2:52 PM 
Hi Markison,
Yes, it's a precision problem while converting. I suggest you add a FormatString to prevent this. Something like : FormatString="N3".

Markison Sep 25, 2014 at 2:20 AM 
I found a strange problem while using DoubleUpDown.
While 5.9 next step value should be 6 or 6.0, but it trun to 5.9999...8, but I had setting the "Increment" to 0.1.

1). 9.99999.. to 10.1
2). manual input 5.6 click to up , or click down to 0.0

It's maybe cause in the precision while convert double to decimal.


BoucherS May 22, 2014 at 2:27 PM 
Please use a discussion tab. Discussion has been created.

andyste1 May 22, 2014 at 1:04 PM 
Could the location of the up/down buttons be configurable, to have them on the *left* hand side of the control? I'm using a lot of DoubleUpDowns to set values like voltages and currents, and I display the unit symbol (e,g. "mV, "mA") immediately to the right of the control. Having the up/down buttons sitting between the numeric value and this label spoils the effect a little.

skst May 14, 2014 at 4:03 PM 
(documentation typo) I believe the property is named "Minimum" (not "Mimum"). :-)

BoucherS Oct 3, 2013 at 12:47 PM 
Hi, when I delete the value in a doubleUpDown, it fires the "ValueChanged" event. Can you create a new discussion tab and post a sample please.

sriman_ch Oct 3, 2013 at 6:18 AM 

When I am emptying the text in doubleupdown control, its not firing value changed event. How can I rectify this problem ?


emartin Dec 10, 2012 at 3:54 PM 
tlaemmlein, This issue has been created to answer your need:

tlaemmlein Dec 9, 2012 at 2:27 PM 
it is possible to clip the value to the min/max values? Example the Maximum is 150.75 and the user types 999. The result should be 150.75.