如何在XAML中正确添加前缀(或后缀)到数据绑定?

时间:2009-06-23 19:25:10

标签: c# wpf xaml data-binding

如何对单个TextBlock进行数据绑定以说“嗨,Jeremiah”?

<TextBlock Text="Hi, {Binding Name, Mode=OneWay}"/>

寻找优雅的解决方案。有什么?我正试图远离为每个前缀/后缀组合编写转换器。

3 个答案:

答案 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 =“Horizo​​ntal”,其中包含多个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>