我有一个简单的标签,我想显示一些内置标签“header”的诊断数据。我没有在水平StackPanel中使用2个标签,而是尝试使用{Binding StringFormat}
。这是XAML:
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Path=SomeData, StringFormat=Value: {0}}" />
</StackPanel>
在这种情况下,SomeData
是视图模型上的字符串属性,它正确绑定到视图。 SomeData
的值为“ABC”。
我希望Label能够显示:“Value:ABC” 不是。它显示简单:“ABC”
我做错了什么?
答案 0 :(得分:6)
不确定为什么StringFormat
不起作用,我猜它不适合Text
以外的其他属性。对于Content
媒体资源,您可以尝试使用ContentStringFormat
:
<Label Content="{Binding Path=SomeData}" ContentStringFormat="Value: {0}" />
有些人建议将Content
与TextBlock
一起打包,并在StringFormat
属性绑定[fe question 1,question 2]中使用TextBlock's Text
。< / p>
<Label>
<TextBlock Text="{Binding Path=SomeData, StringFormat='{}Value: {0}'}"/>
</Label>
答案 1 :(得分:5)
StringFormat
适用于string
类型的属性(当您绑定的对象正在转换为应用字符串格式的字符串时)。
Content
的{{1}}属性属于Object。
建议的解决方案:改为使用Label
!