Skip to main content

DevExpress v24.1 Update — Your Feedback Matters

Our What's New in v24.1 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

SpinEdit Class

An editor with spin buttons used to adjust a numerical value.

Namespace: DevExpress.Xpf.Editors

Assembly: DevExpress.Xpf.Core.v24.1.dll

NuGet Package: DevExpress.Wpf.Core

#Declaration

public class SpinEdit :
    ButtonEdit

#Remarks

The SpinEdit class is a text editor with a pair of spin buttons that users can click to adjust a value. Spin buttons are used to increment or decrement the editor’s value displayed in the text edit region.

WPF SpinEdit Control

Tip

The SpinEdit class inherits its features from the ButtonEdit class.

Refer to the ButtonEdit class description for information on derived features and API.

#Create a SpinEdit

Use the BaseEdit.EditValue property to specify the editor’s value.

<Window ...
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">

<dxe:SpinEdit EditValue="8" Increment="0.5" MinValue="0" MaxValue="10" AllowSpinOnMouseWheel="False" />

Handle the BaseEdit.EditValueChanged event to get a notification when the editor’s value is changed. To validate the new value, handle the BaseEdit.Validate event.

#Editor Value

The SpinEdit is designed to work with decimal values. Specify the BaseEdit.EditValueType property if you bind the editor to a property of another type:

<dxe:SpinEdit EditValue="{Binding EditValue}" 
              EditValueType="{x:Type sys:Int32}" 
              IsFloatValue="False"/>
public class MainViewModel : ViewModelBase {
    public int EditValue { get; set; } = 12;
}

In this case, the SpinEdit.MinValue and SpinEdit.MaxValue properties still accept values of the decimal? type (regardless of the BaseEdit.EditValueType property value).

#Value Edit Options

The editor’s increment value, by which the edit value is changed every time the editor is spun, is specified by the SpinEdit.Increment property.

The editor’s value can be integer or floating-point. Use the SpinEdit.IsFloatValue property to specify the editor’s value type.

#Minimum and Maximum Values

The minimum and maximum allowed values are specified by the SpinEdit.MinValue and SpinEdit.MaxValue properties, respectively. Use the SpinEdit.Minimize or SpinEdit.Maximize method to set the editor’s value to the minimum or maximum value, respectively.

Useful API:

The SpinEdit does not raise the BaseEdit.Validate event if the entered value exceeds the SpinEdit.MinValue or SpinEdit.MaxValue property.

#Masked Input

You can use a variety of predefined masks or create your own custom masks to additionally customize user input:

SpinEdit - Numeric Masks

<dxe:SpinEdit EditValue="{Binding EditValue}"
              Mask="c" 
              MaskUseAsDisplayFormat="True"/>

Refer to the following help topic for more information: Mask Type: Numeric.

#Mouse Wheel Input

Users can modify the SpinEdit‘s value with a mouse wheel.

Set the SpinEdit’s TextEdit.AllowSpinOnMouseWheel property to true to allow users to spin a mouse wheel to change an edit value. This property is in effect only when the TextEdit.AllowSpin property is true.

#Appearance Customization

The following code sample displays spin buttons horizontally:

SpinEdit - Horizontal Buttons

<dxe:SpinEdit AllowDefaultButton="False">
    <dxe:SpinEdit.Buttons>
        <dxe:SpinButtonInfo IsDefaultButton="True" SpinStyle="Horizontal"/>
    </dxe:SpinEdit.Buttons>
</dxe:SpinEdit>

Tip

Refer to the following topic for more information: Appearance Customization.

The following code snippets (auto-collected from DevExpress Examples) contain references to the SpinEdit class.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also