如何在SpinEdit中显示浮点值?

时间:2018-12-10 07:43:29

标签: c# wpf xaml devexpress

我有一个带有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'

编辑:

我设法用一个临时的解决方法来显示浮点值。我扔掉了MaskUseAsDisplayFormat =“ True”属性,并在将值设置为“ ###。##”的情况下使用了FormatDisplayString属性。我对这种解决方案不满意,但它现在可以使用,问题仍然悬而未决,我希望进一步提出建议。

EDIT2:

我正在开发devexpress版本16.1.6,在与我的同事协商后,他建议MaskUseAsDisplayFormat属性可能在较新的版本上正常工作,但是我不能使用较新的版本,因此我将不对其进行检查。

1 个答案:

答案 0 :(得分:0)

我也使用SpinEdit显示浮点/双精度值。这是对我有用的代码:

<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。