为什么在这个Xaml中会忽略StringFormat?

Sim*_*bee 1 wpf xaml string-formatting

我有一个简单的标签,我想显示一些内置标签"标题"的诊断数据.我没有在水平StackPanel中使用2个标签,而是试着尝试使用{Binding StringFormat}.这是XAML:

   <StackPanel Orientation="Horizontal">
       <Label Content="{Binding Path=SomeData, StringFormat=Value: {0}}" />
   </StackPanel>
Run Code Online (Sandbox Code Playgroud)

在这种情况下SomeData,视图模型上的字符串属性,它正确绑定到视图.值为SomeData"ABC".

我希望标签显示:"价值:ABC"它不是.它显示简单:"ABC"

我究竟做错了什么?

har*_*r07 6

不知道为什么StringFormat不起作用,我想它只是不适合除了以外的属性Text.对于Content财产,您可以尝试ContentStringFormat:

<Label Content="{Binding Path=SomeData}" ContentStringFormat="Value: {0}" />
Run Code Online (Sandbox Code Playgroud)

有人建议换ContentTextBlock和使用StringFormat中的TextBlock's Text性能结合的[Fe 问题1,问题2 ].

<Label>
    <TextBlock Text="{Binding Path=SomeData, StringFormat='{}Value: {0}'}"/>
</Label>
Run Code Online (Sandbox Code Playgroud)


Arc*_*rus 5

StringFormat适用于类型的属性string(当您绑定的对象被转换为字符串时,应用字符串格式).

Content物业Label是Object类型的.

建议的解决方案:TextBlock改用!