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

Kla*_*lay 4 string wpf formatting

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

我想做类似下面的事情,我有一个字符串格式的数据绑定.该字段是一个文本字段,我想用后缀显示它(但不更改底层数据).

<Label Name="field" Content="{Binding obj.field, StringFormat=\{0\} suffix}" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

Joe*_*ant 7

StringFormat如果目标类型是,将工作string.然而,类型LabelContent属性是对象.这就是为什么StringFormat没有效果.如果你把一个TextBlock内部Label(或只使用一个TextBlock)并绑定了它TextblockText属性,它应该工作正常.

<Label>
    <TextBlock Text="{Binding obj.field, StringFormat=\{0\} suffix}" />
</Label>
Run Code Online (Sandbox Code Playgroud)

如果您有其他理由要将值绑定到该值Label,您还可以执行以下操作.

<Label DataContext="{Binding obj.field}">
    <TextBlock Text="{Binding ., StringFormat=\{0\} suffix}" />
</Label>
Run Code Online (Sandbox Code Playgroud)

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