wpf字符串格式化非数字或日期

时间:2009-08-12 19:14:27

标签: wpf string formatting

这应该有一个简单的解决方案,但我似乎无法找到它。

我想做类似以下的事情,其中​​我有一个字符串格式的数据绑定。该字段是一个文本字段,我想用后缀显示它(但不会更改基础数据)。

<Label Name="field" Content="{Binding obj.field, StringFormat=\{0\} suffix}" />

所以我希望obj.field的值,例如“value”,显示为“值后缀”。

是否真的有必要使用ValueConverter(或其他)来做到这一点?我想如果有可能使用StringFormat构造,那么我就没有遇到过一些魔术格式选项。

这导致了一个相关的问题:我在哪里可以找到WPF StringFormat的参考?我可以找到c#String.Format格式化选项的参考,但这些并不都在WPF中起作用(就像我上面尝试过的那样)。

2 个答案:

答案 0 :(得分:7)

如果目标类型为StringFormat,则

string将起作用。但是,Label的{​​{1}}属性的类型是object。这就是Content没有效果的原因。如果您在StringFormat内放置TextBlock(或仅使用Label)并绑定TextBlock的{​​{1}}属性,则应该可以正常工作。< / p>

Textblock

如果您有其他理由想要将值绑定到Text,您还可以执行以下操作。

<Label>
    <TextBlock Text="{Binding obj.field, StringFormat=\{0\} suffix}" />
</Label>

相关问题:我无法想到为什么您可以提供给Label的普通格式字符串不起作用的原因。它们都应该是标准字符串和自定义字符串。 Here是一个包含多个示例的页面。如果您发现任何不起作用,请提供示例。

答案 1 :(得分:0)

在这里找到一个很好的参考,不同的例子:http://blog.stevex.net/string-formatting-in-csharp/