2015-11-06 3 views
0

я DecimalUpDown по формеXceed DecimalUpDown - максимальное связывание работает странно

<xceed:DecimalUpDown Value="{Binding Value}" FormatString="C2" Maximum="{Binding MaxValue}" Minimum="0"> 

Value является decimal.

MaxValue является decimal.

Двойная проверка.


Когда мой MaxValue, например, 83,64 и я вхожу 90

enter image description here

затем нажмите клавишу ВВОД

enter image description here

он превращается в 9 вместо 83,64.


Когда я вхожу 723

enter image description here

и нажмите клавишу ВВОД

enter image description here

он превращается в 72 вместо 83,64.


Я подозреваю, что это что-то с этим Maximum ограничением, потому что когда я удалить его

<xceed:DecimalUpDown Value="{Binding Value}" FormatString="C2" Minimum="0"> 

и введите - например - 48,65

enter image description here

и нажмите клавишу ВВОД

enter image description here

он остается на этом значении, как должен.

Могу ли я что-то забыть или это какая-то ошибка десятичного разделителя?

+1

Я получаю тот же эффект как с десятичными, так и целыми полями - что, кажется, происходит, если входное значение превышает максимальное значение, а не устанавливает максимальное значение, символы удаляются с конца строки до тех пор, пока значение не окажется в пределах диапазона ,Я не знаю, было ли это документированное поведение или ошибка. – PaulF

+0

Спасибо за проверку – erem

ответ

3

Когда максимум 83,64 и ввода 90, вы находитесь вне диапазона, поэтому возникает исключение и последнее действительное значение, введенное сохраняется: 9.

Если вы хотите установить максимальный значение, когда введенное значение больше максимального, установите для свойства ClipValueToMinMax значение true. Ввод 90 приведет к 83,64.