如何对单个TextBlock进行数据绑定以说“嗨,Jeremiah”?
<TextBlock Text="Hi, {Binding Name, Mode=OneWay}"/>
寻找优雅的解决方案。有什么?我正试图远离为每个前缀/后缀组合编写转换器。
答案 0 :(得分:29)
如果您只需要插入一个值,则可以使用Binding的StringFormat属性。请注意,此需要.NET 3.5 SP1 (或.NET 3.0 SP2),因此只有在依靠具有最新Service Pack的生产环境时才能使用它。
<TextBlock Text="{Binding Name, Mode=OneWay, StringFormat='Hi, {0}'}"/>
如果你想插入两个或多个不同的绑定值,我通常只会创建一个StackPanel,其Orientation =“Horizontal”,其中包含多个TextBlocks,例如:
<StackPanel Orientation="Horizontal">
<TextBlock Text="Good "/>
<TextBlock Text="{Binding TimeOfDay}"/>
<TextBlock Text=", "/>
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="!"/>
</StackPanel>
答案 1 :(得分:2)
修正(未成年人)@Joe White的解决方案
<TextBlock Text="{Binding Name, Mode OneWay, StringFormat='Hi {0}}'"/>
单引号是成功应用stringformat所必需的
为我工作:))
答案 2 :(得分:0)
我认为应该这样做。
<TextBlock>
<TextBlock Text="Hi, " />
<TextBlock Text="{Binding Name, Mode=OneWay}" />
</TextBlock>