代码之家  ›  专栏  ›  技术社区  ›  Jeremiah

如何正确地向XAML中的数据绑定添加前缀(或后缀)?

  •  11
  • Jeremiah  · 技术社区  · 15 年前

    如何将单个文本块数据绑定为“嗨,耶利米”?

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

    寻找优雅的解决方案。外面是什么?我试图避免为每个前缀/后缀组合编写转换器。

    3 回复  |  直到 6 年前
        1
  •  28
  •   John Cummings    6 年前

    如果只需要插入一个值,则可以使用绑定 StringFormat 财产。注意这个 需要.NET 3.5 SP1 (或.NET 3.0 SP2),因此仅当您的生产环境具有最新的Service Pack时才使用它。

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

    如果要插入两个或更多不同的绑定值,我通常只制作一个stackpanel,其方向为“horizontal”,其中包含多个文本块,例如:

    <StackPanel Orientation="Horizontal">
        <TextBlock Text="Good "/>
        <TextBlock Text="{Binding TimeOfDay}"/>
        <TextBlock Text=", "/>
        <TextBlock Text="{Binding Name}"/>
        <TextBlock Text="!"/>
    </StackPanel>
    
        2
  •  2
  •   Johnny    7 年前

    修正(小)到@joe white的解

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

    成功应用StringFormat需要单引号
    为我工作:)

        3
  •  0
  •   Gregory Higley    15 年前

    我觉得应该这样做。

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