是否可以在XAML DataBinding中使用常量字符串来重新声明DataBound值?

时间:2015-06-22 07:07:32

标签: c# xaml windows-phone

要将值绑定到TextBlock,我们使用以下语法显示有界对象的< ItemName> 属性。

<TextBlock Text="{Binding Path=ItemName}" />

但是有一种语法可以使用上面的标记将常量字符串&#39; <&em>&#39; 与数据绑定属性连接起来,以便显示如下内容: TextBlock

中的商品 &lt; ItemName&gt;

1 个答案:

答案 0 :(得分:2)

您可以在绑定中使用StringFormat,如下所示:

<TextBox Text="{Binding ItemName, StringFormat={}Item: {0}}"/>

话虽如此,编辑时可能会导致一些意外行为。例如,如果用户只编辑项目名称(不包括'Item:'文本),那么当TextBox失去焦点时,字符串格式将显示为“Item:Item:xyz”,这有点奇怪。可能有办法解决这个问题,但现在没有任何想法。

但是,如果用户清除整个TextBox,然后设置名称,那么这一切都很好,花花公子。

否则,在TextBlock前面使用TextBox可能会更好。像这样:

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Item:" VerticalAlignment="Center"
               Margin="0,0,6,0"/>
    <TextBox Text="{Binding ItemName}"/>
</StackPanel>