是否可以在 XAML DataBinding 中将 DataBound 值与常量字符串连接起来?

Is it possible to concactenate a DataBound value with a constant string in XAML DataBinding?

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

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

但是是否有一种语法可以使用上述标记将常量字符串 'Item' 与数据绑定 属性 连接起来,以便显示如下内容: Item TextBlock

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

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

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

但是,如果用户清除整个 TextBox,然后设置名称,就没问题了。

否则,最好在 TextBox 前面使用 TextBlock。像这样:

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