是否可以使用 StringFormat 将“”(引号)添加到绑定中

Is it possible to add "" (Quotes) to a binding using StringFormat

所以我有一个 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"/>

但出现错误:

Error 4 Names and Values in a MarkupExtension cannot contain quotes. The MarkupExtension arguments ' FriendlyName, StringFormat= - "{0} "}' are not valid

所以我想知道是否可以使用 StringFormat 向绑定添加引号?

您应该添加单引号:

 <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>

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

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