Restriction or Validation in WPF Double TextBox
6 Jul 20216 minutes to read
This section explains how to validate or restrict the DoubleTextBox
control value.
Restrict the value within minimum and maximum value
The Value of the DoubleTextBox can be restricted within the maximum and minimum limits. Once the value has reached the maximum or minimum value , the value does not exceed the limit. We can change the maximum and minimum limits by using the MinValue property and MaxValue property.
You can choose when to validate the maximum and minimum limits while changing the values by using the MinValidation and MaxValidation properties.
-
OnKeyPress
— When setting theMaxValidation
orMinValidation
toOnKeyPress
, the value in theDoubleTextBox
will be validated shortly after pressing a key. So, it is not possible to provide any invalid input at all and the value does not exceed the maximum and minimum limits. -
OnLostFocus
- When settingMaxValidation
orMinValidation
toOnLostFocus
, the value in theDoubleTextBox
is validated, when theDoubleTextBox
loses the focus. That is, theDoubleTextBox
will accept any value, validation will only take place after theDoubleTextBox
has lost its keyboard focus. After validation, when the value of theDoubleTextBox
is greater than theMaxValue
or less than theMinValue
, the value will be automatically set toMaxValue
orMinValue
. -
MaxValueOnExceedMaxDigit - When you give input greater than specified maximum limit,
MaxValueOnExceedMaxDigit
property will decide either it should retain the old value or reset to maximum limit that is specified. For example, ifMaxValue
is set to 100 and you are trying to input 200.Value
will changed to 100 whenMaxValueOnExceedMaxDigit
istrue
. WhenMaxValueOnExceedMaxDigit
isfalse
, 20 will be retained and last entered 0 will be ignored.NOTE
MaxValueOnExceedMinDigit
property will be enabled only when theMaxValidation
is set toOnKeyPress
. -
MinValueOnExceedMinDigit - When you give input less than specified minimum limit,
MinValueOnExceedMinDigit
property will decide either it should retain the old value or reset to minimum limit that is specified. For example, ifMinValue
is set to 200 and theValue
is 205 and you are trying change the value to 20.Value
will changed to 200 whenMinValueOnExceedMinDigit
istrue
. WhenMinValueOnExceedMinDigit
isfalse
, Old value 205 will be retained.NOTE
MinValueOnExceedMinDigit
will be enabled only when theMinValidation
is set toOnKeyPress
.
<syncfusion:DoubleTextBox x:Name="doubleTextBox" Width="150" MaxValue="100" MinValue="10"
MinValueOnExceedMinDigit="True" MaxValueOnExceedMaxDigit="True"
MinValidation="OnKeyPress" MaxValidation="OnLostFocus"/>
DoubleTextBox doubleTextBox = new DoubleTextBox();
doubleTextBox.Width = 150;
doubleTextBox.Height = 25;
doubleTextBox.MinValue = 10;
doubleTextBox.MaxValue =100;
doubleTextBox.MinValidation = MinValidation.OnKeyPress;
doubleTextBox.MaxValidation = MaxValidation.OnLostFocus;
doubleTextBox.MinValueOnExceedMinDigit = true;
doubleTextBox.MaxValueOnExceedMaxDigit = true;
MinValidation
is set to OnKeyPress, it cannot let to enter a value less than the MinValue
. If try to enter a value less than the MinValue
, then the MinValue
will set to the Value
property because MinValueOnExceedMinDigit
is set to true
.
MaxValidation
is set to OnLostFocus, so the MaxValidation
will be performed only in the lost focus.
Restrict number of decimal digit
You can format the decimal digits in the DoubleTextBox control using NumberDecimalDigits property. You can restrict the decimal digits of the text within maximum and minimum limits in DoubleTextBox
control using MinimumNumberDecimalDigits and MaximumNumberDecimalDigits properties. The default value of MinimumNumberDecimalDigits
,MaximumNumberDecimalDigits
and DoubleDecimalDigits
properties is -1.
NOTE
If the value of
MinimumNumberDecimalDigits
property is greater than the value ofMaximumNumberDecimalDigits
property, the text ofDoubleTextBox
will be updated based on the value ofMinimumNumberDecimalDigits
property.
<syncfusion:DoubleTextBox Value="125.32545" HorizontalAlignment="Center" VerticalAlignment="Center"
MaximumNumberDecimalDigits="4"
MinimumNumberDecimalDigits="1" />
DoubleTextBox doubleTextBox = new DoubleTextBox();
doubleTextBox.Value = 125.32545;
doubleTextBox.MaximumNumberDecimalDigits = 4;
doubleTextBox.MinimumNumberDecimalDigits = 1;
When value of MinimumNumberDecimalDigits
, MaximumNumberDecimalDigits
and NumberDecimalDigits
properties are specified, NumberDecimalDigits
property takes high precedence and updates the text of DoubleTextBox
property.
<syncfusion:DoubleTextBox Value="125.32545" HorizontalAlignment="Center" VerticalAlignment="Center"
MaximumNumberDecimalDigits="4"
MinimumNumberDecimalDigits="1"
NumberDecimalDigits="3"
/>
DoubleTextBox doubleTextBox = new DoubleTextBox();
doubleTextBox.Value = 125.32545;
doubleTextBox.MaximumNumberDecimalDigits = 4;
doubleTextBox.MinimumNumberDecimalDigits = 1;
doubleTextBox.NumberDecimalDigits = 3;
Read only mode
The DoubleTextBox
cannot allow the user input, edits when IsReadOnly property is sets to true
. The user can still select text and display the cursor on the DoubleTextBox
by setting the IsReadOnlyCaretVisible property to true
. However, value can be changed programmatically in readonly mode.
<syncfusion:DoubleTextBox x:Name="doubleTextBox" IsReadOnly="True" Value="10" IsReadOnlyCaretVisible="True"/>
DoubleTextBox doubleTextBox = new DoubleTextBox();
doubleTextBox.Value = 10;
doubleTextBox.IsReadOnly = true;
doubleTextBox.IsReadOnlyCaretVisible = true;