是否可以添加"" (引用)使用StringFormat进行绑定

时间:2015-07-27 14:50:13

标签: c# wpf xaml binding string-formatting

所以我有一个TextBlock绑定到我的对象上的属性,如下所示:

<TextBlock Grid.Column="1" Text="{Binding FriendlyName}" Margin="0,5,0,5"/>

我现在想用引号括起这段文字并添加一个连字符,所以我尝试了:

<TextBlock Grid.Column="1" Text="{Binding FriendlyName, StringFormat= - \"{0}\"}" Margin="0,5,0,5"/>

但是有很多错误。

我也试过(来自here):

<TextBlock Grid.Column="1" Text="{Binding FriendlyName, StringFormat= -  &quot;{0} &quot;}" Margin="0,5,0,5"/>

但得到了错误:

  

错误4 MarkupExtension中的名称和值不能包含引号。   MarkupExtension参数&#39; FriendlyName,StringFormat = - &#34; {0}   &#34;}&#39;无效

所以我想知道是否可以使用StringFormat

为绑定添加引号

2 个答案:

答案 0 :(得分:5)

您应该添加单引号:

 <TextBlock Grid.Column="1" Text="{Binding FriendlyName, StringFormat='-  &quot;{0}&quot;'}" Margin="0,5,0,5"/>

或者您可以使用MultiBinding

<TextBlock Grid.Column="1" Margin="0,5,0,5">
    <TextBlock.Text>
        <MultiBinding StringFormat=" -  &quot;{0}&quot;">
            <Binding Path="FriendlyName" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

答案 1 :(得分:1)

明确定义绑定元素(不需要多重绑定):

<TextBlock Grid.Column="1" Margin="0,5,0,5">
    <TextBlock.Text>
        <Binding StringFormat="{} -  &quot;{0}&quot;" Path="FriendlyName"/>
    </TextBlock.Text>
</TextBlock>