XAML元素Binding中能否通过字符串格式实现十进制数值取反显示?
答案
可以仅通过Binding的StringFormat实现十进制数值取反显示,无需使用Converter或提前修改原值。
实现原理
.NET 自定义数字格式字符串支持分号;分隔的分段条件规则,三段规则分别对应正数、负数、0的显示格式:
- 第一段:匹配正数的显示格式
- 第二段:匹配负数的显示格式
- 第三段:匹配0的显示格式
具体实现代码
针对你需要保留两位小数的需求,XAML绑定写法如下:
<!-- 绑定到数值类型属性Value --> <TextBlock Text="{Binding Value, StringFormat={}{-0.00;0.00;0}}" />
效果验证
- 绑定值为
12.04时,匹配第一段格式,输出-12.04 - 绑定值为
-4.57时,匹配第二段格式,输出4.57 - 绑定值为
0时,匹配第三段格式,输出0
格式调整说明
如果需要调整数值精度或显示样式,直接修改对应段的格式符即可:
- 保留3位小数:将格式改为
{-0.000;0.000;0} - 仅显示整数:将格式改为
{-0;0;0} - 带千位分隔符保留两位小数:将格式改为
{-#,##0.00;#,##0.00;0}
内容的提问来源于stack exchange,提问作者Alexey Titov
相关产品推荐
相关产品推荐

