Как отобразить значения с плавающей точкой в ​​SpinEdit? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть простой диалог с элементом управления SpinEdit, который должен работать с целыми числами и значениями с плавающей запятой.Он работает правильно с целыми числами, но не загружает значения с плавающей точкой.Значение с плавающей запятой корректно загружается в мое свойство, но как только открывается диалоговое окно, оно показывает «0,00» вместо, скажем, «44, 44».Если мое значение с плавающей запятой не имеет десятичных чисел, оно также загружается правильно, поэтому я вижу такие значения, как '44, 00 '.

Я пробовал приводить к десятичному типу, но безрезультатно.Разница лишь в том, что значение в моей собственности имеет точку "."в качестве десятичного заполнителя, в то время как SpinEdit показывает запятую.Из того, что я прочитал, это не должно быть проблемой.Вот мой SpinEdit:

XAML:

  <DataTemplate DataType="{x:Type local:TInputNumericVM}">
     <dxe:SpinEdit x:Name="dxSpinEdit" 
                   Text="{Binding Value, Mode=TwoWay}"
                   MaskType="Numeric"
                   IsFloatValue="{Binding FloatValue}"
                   MinValue="{Binding MinValue}"
                   MaxValue="{Binding MaxValue}"
                   Mask="{Binding Mask, Mode=TwoWay}" 
                   MaxLength="{Binding Path=InputLength}"
                   MaskShowPlaceHolders="{Binding ShowPlaceHolder}"
                   InvalidValueBehavior="WaitForValidValue"
                   MaskUseAsDisplayFormat="True"
                   AllowRoundOutOfRangeValue="True"
                   Increment="{Binding IncrementStep}"
                   />
  </DataTemplate>

с 'IsFloatVakue = true', 'Mask = f', 'MaskShowPlaceholders = True'

EDIT:

Мне удалось отобразить значение с плавающей точкой с временным решением проблемы.Я выбросил свойство MaskUseAsDisplayFormat = "True" и использовал свойство FormatDisplayString, где я установил значение "###. ##".Я не удовлетворен этим решением, но оно работает пока, вопрос все еще открыт, и я буду признателен за дальнейшие предложения.

EDIT2:

Я работаю над devexpress ver 16.1.6 и после консультаций с моим коллегой он предполагает, что свойство MaskUseAsDisplayFormat может работать должным образом в более новой версии, но я не могу использовать более новую версию, поэтому не буду проверять его.

1 Ответ

0 голосов
/ 27 августа 2019

Я также использую SpinEdit для отображения значений типа float / double.Вот код, который работает для меня:

<dxe:SpinEdit MinValue="1" Increment="0.5" 
              Mask="f1" MaskUseAsDisplayFormat="True" IsTextEditable="True"              
              EditValueType="{x:Type system:Double}"
              EditValue="{Binding Path=XYZ, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />

Угадайте, что важными свойствами для установки являются «Маска» и «EditValueType».

Использование DevExpress 17.2.4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...