这是合约。
我有一个数据网格(实际上是一个telerik rad网格,但我认为它没有多大区别),我们有很多货币列(接近10)我们想以非常特殊的方式格式化(即不是我们通常的典型$ 0.00格式)。为了做到这一点,我们使用转换器,它完美地工作。但是,出现了两个问题
我们尝试在网格中输入实际格式,但如果使用转换器,结果并不总是相同。例如,如果我们把"#,0.00" (2个十进制和一千个分隔符),如果字符串格式在网格中而不是10 000.00(这里的空间中的千位分隔符),则得到10,000.00。这就是我们开始首先使用转换器的原因。
我在想,有没有办法创建或覆盖字符串格式。例如
{Binding Price, StringFormat='c2'}
代表2位小数的货币。我们可以以某种方式改变它,以便它能按照我们想要的方式工作吗?这应该不需要转换器,并且很可能加速渲染。
感谢。
答案 0 :(得分:0)
除了在要格式化的值上调用StringFormat
方法时更改所使用的区域性,您无法更改ToString()
的应用方式。
您可以设置列的DataFormatString
属性:https://docs.telerik.com/devtools/wpf/controls/radgridview/columns/data-formatting
或者您可以从视图模型返回已格式化的值,并直接在此类中执行任何转换逻辑,而不是使用转换器:
<telerik:GridViewDataColumn DataMemberBinding="{Binding FormattedValue}" ... />
答案 1 :(得分:0)
最后,唯一遗漏的是:
IsLocalizationLanguageRespected = “假”