有没有办法让XAML/C#StringFormat显示较大金额的全部美元,但较小金额的美分?

why*_*ird 5 c# wpf xaml binding string-formatting

在XAML中,很容易使用StringFormat='$#,0;$-#,0;Nil'将绑定的整数变量显示为格式良好的美元金额.例如,1024会出现'$ 1,024'.

我需要处理从几美分到几百美元不等的数字 - 因此0.45应显示为"0.45美元",但任何大于某个阈值(1?9.99?)的数据都应显示为整数美元.例如,12.73应显示为"$ 13".

在我继续推出一些中等杂乱和特定的代码之前,有没有人有一个很好的聪明方法来做到这一点?理想情况下,它将全部在StringFormat :)

Jay*_*Jay 7

我看不出所有这些逻辑如何放在StringFormat中.

我认为最干净的方法是IValueConverter实施.您可以使用转换器参数来设置阈值,以便转换器可以重复使用,并且没有硬编码值.

除非您使用双向绑定,并且如果您正在实现MVVM,否则最好在视图模型中具有一个字符串变量,该变量根据整数值返回显示值.