ComboBox 项目的货币格式设置
我有一个绑定到小数 ObservableCollection 的 ComboBox。 将我们的货币转换器应用于商品的正确方法是什么?
编辑:
a)我有一个必须使用的现有货币转换器 b) .NET 3.0
我需要对项目进行模板化吗?
I have a ComboBox bound to an ObservableCollection of decimals. What is the correct way to apply our currency converter to the items?
Edit:
a) I have an existing currency converter that I must use
b) .NET 3.0
Do I need to template the items?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 ComboBox 上的 ItemStringFormat 属性来告诉它如何格式化其每个项目:
但是,请注意,当使用“c”作为货币格式化程序时,它将使用本地计算机定义的货币。 如果您的值以美元定义,但您的客户端 PC 以英镑或日元作为货币符号运行,那么他们将不会看到您希望他们看到的内容。
You can use the ItemStringFormat property on ComboBox to tell it how to format each of its items:
However, be aware that when using "c" as a currency formatter, it will use the currency defined by the local machine. If your values are defined in $ but your client PC is running with pounds or yen as their currency symbol, they won't be seeing what you want them to see.
如果您有一些代码来进行转换,那么最好的选择确实是通过模板通过 IValueConverter 运行每个项目。
因此,您只需定义CurrencyConverter 类,使其实现IValueConverter 并调用您的代码将给定金额转换为格式化字符串。
Your best bet if you have some code to do the conversion is indeed to run each item through an IValueConverter via a template.
So you just define your CurrencyConverter class such that it implements IValueConverter and calls your code to turn the given amount into a formatted string.
在绑定表达式中使用 StringFormat,例如
参见此 博客了解更多详细信息。
A ValueConverter 是另一种方式 - StringFormat 不适用于 .NET3.0,它需要 WPF3.5 SP1。
Use StringFormat in the Binding expression like
See this blog for more details.
A ValueConverter is another way - StringFormat doesnt work on .NET3.0 it needs WPF3.5 SP1.