In Insert Mode digits are not inserted properly. For example, with Value 123456 - when caret is between 3 and 4 pressing digit overwrites the digit 4 but is shouldn't
This can be reproduced in the Telerik UI for WPF demo application, demo "MASKED INPUT | Numeric Input" -> More Masked Input Examples.
When (very!) quickly following a numeric key press with a press on the enter key, the input field clears itself, causing a discrepancy between the bound ViewModel property (that is correctly updated to the entered value) and the displayed control (which is now empty). For the end result, see the attached Screenshot.
The Tab key does not seem to cause this behavior although it causes the binding to update just like the enter button.
No matter how quickly you press the enter button after entering a value, the control should display the exact value I entered and should never just clear itself.
With best regards
Simon Müller
The display text (the text displayed when the controls is not focused) doesn't match the FormatString on startup of RadMaskedNumericInput. This happens if the FormatString is "00" and the initial value is set to 0. In this case, the initially displayed text is "0", instead of the expected "00". When you focus the masked input control and then lost the focus, the correct display text is shown.
To workaround this, you can override the CoerceDisplayTextOverride method of RadMaskedNumericInput and replace the returned value in case it is "0".
public class CustomMaskedNumericInput : RadMaskedNumericInput
{
protected override string CoerceDisplayTextOverride()
{
var txt = base.CoerceDisplayTextOverride();
if (txt == "\00")
{
txt = "00";
}
return txt;
}
}
You have the following scenario: The UpdateValueEvent property is set to "LostFocus". You have bound the Value property of the control to a property from your ViewModel. When this property is changed programmatically from negative to positive several times, the Value property of the control isn't updated correctly. It stays negative when it must stay positive. Workaround (if applicable): You can change the UpdateValueEvent property to "PropertyChanged" Other Possible workaround (if the bound property is named "Sum") private void radMaskedNumericInputSum_ValueChanging_1(object sender, Telerik.Windows.Controls.MaskedInput.RadMaskedInputValueChangingEventArgs e) { if (this.Sum != (double)e.NewValue) { e.Handled = true; } }
This is reproducible with RadMaskedNumericInput and RadMaskedCurrencyInput, when the Mask property is empty.
UpdateValueEvent is LostFocus. FormtString is non default - for example n2 or c2.
When all text is selected and delete key is pressed, the Text will become "$,." or "-." or "($)" - non digit symbols remain in text.
Expected: Text becomes empty string "".
NumericInput or CurrencyInput with value 555666.00.
Select the part '666' press 7. This results is
55|57.00 (caret should be after 7 but is actually shifted to wrong position)
In order to reproduce, you need to focus the control when you run the application. 1.When you press the backspace key it removes the last character and after pressing it a second time the character will be replaced with the removed character. 2. When paste(Ctrl+V) a text in the control, the text is ignoring the current position of the caret and position at the beginning of the control.
CurrenyInput with Indian Culture. Value is 123456789.
Controls shows: "₹ 1,234,56,789.00"
Expected is : "₹ 12,34,56,789.00"
The SpinMode property is set to Position and the Mask is like "d" or "#". The "d" means that a digit pattern is required , "#" is for non-required digit. When the caret is on the empty placeholder and the Key.Up Arrow is pressed, non-numeric characters appear first ("! " then """ then "#" etc). The expected behavior is that only digits are looped in such mask *digit* positions.
RadMaskedCurrencyInput with the following properties:
Mask="#14.2" , FormatString="#,0.##" and IsCurrencySymbolVisible= True
Pressing minus key produces ArgumentException
Message "String cannot be of zero length.\r\nParameter name: oldValue" string
at System.String.ReplaceInternal(String oldValue, String newValue)
at System.String.Replace(String oldValue, String newValue)
at Telerik.Windows.Controls.RadMaskedCurrencyInput.CoerceDisplayTextOverride()
at Telerik.Windows.Controls.RadMaskedInputBase.CoerceDisplayText()
at Telerik.Windows.Controls.RadMaskedInputBase.OnValueInternalChanged(DependencyObject d, DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
at Telerik.Windows.Controls.RadMaskedCurrencyInput.OnIsNegativeValueChanged()
at Telerik.Windows.Controls.RadMaskedCurrencyInput.set_IsNegativeValue(Boolean value)
at Telerik.Windows.Controls.RadMaskedCurrencyInput.ToggleNegativeSignKey()
This reproduces only in a no-mask scenario (Mask="").
For example, if you enter the codes for º and ª, they appears as 'o' and 'a'. In other words, the bigger version of the symbol.MaskedInput focus behaves different when it is set in code behind. When the textbox is on focus and new character is entered the text remains the same and the new character is added at the beginning of the textbox. Scheduled for:
The fix for this issue will be available with LIB (version 2019.1.128) scheduled for publishing on Monday, 28th January 2019.