在XAML中,使用StringFormat='$#,0;$-#,0;Nil'
很容易将绑定的整数变量显示为格式良好的美元金额。例如,1024
将出现'$ 1,024'。
我需要处理从几美分到几百美元不等的数字 - 所以0.45
应该显示为'$ 0.45',但是应该显示任何大于某个阈值(1?9.99?)的数字作为一个整体的金额。例如。 12.73
应显示为“$ 13”。
在我继续推出一些中等杂乱且特定的代码之前,有没有人有一个很好的聪明方法来做到这一点?理想情况下,它将全部在StringFormat:)
答案 0 :(得分:7)
我无法看到所有这些逻辑如何放入StringFormat。
我认为最简洁的方法是IValueConverter
实施。您可以使用转换器参数来设置阈值,以便转换器可以重复使用,并且没有硬编码值。
除非你使用双向绑定,并且如果你正在实现MVVM,最好在视图模型中有一个字符串变量,它根据整数值返回显示值。
答案 1 :(得分:1)
不要害怕为此特定情况创建值转换器。
如果这种类型的格式存在业务需求,那么它很可能会在以后重复使用,并使其成为值转换器,使其更容易重用和测试。
Jay的建议可能很干净,因为您的要求需要使用逻辑格式化阈值。