我有一个简单的对话框,里面有一个SpinEdit控件,它应该可以处理整数和浮点值。它可以正确处理整数,但不会加载浮点值。THe浮点值被正确地加载到我的属性中,但是一旦对话框打开,它就会显示'0,00‘而不是'44,44’。如果我的浮点值没有十进制数,它也会正确加载,所以我可以看到像'44,00‘这样的值。
我尝试将其转换为Decimal,但无济于事。唯一的区别是我的属性中的值有一个点‘’。作为小数占位符,而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>
With 'IsFloatVakue = true','Mask = f','MaskShowPlaceholders = True‘
编辑:
我已经设法使用临时解决方法显示了浮点值。我去掉了MaskUseAsDisplayFormat=的“True”属性,并使用了FormatDisplayString属性,其中我将值设置为"###.##“。我对这个解决方案并不满意,但目前它是有效的,这个问题仍然悬而未决,我希望能有更多的建议。
EDIT2:
我正在开发DevExpress16.1.6版本,在与我的同事协商后,他建议MaskUseAsDisplayFormat属性在新版本上可以正常工作,但我不能使用新版本,所以我不会检查它。
发布于 2019-08-27 23:23:35
我还使用了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}" />
我猜要设置的重要属性是"Mask“和"EditValueType”。
使用DevExpress 17.2.4。
https://stackoverflow.com/questions/53701361
复制相似问题