Silver Light:如何在文本框中将单位设置为常量

Silver Light : How to set unit as constant in a textbox

我想在 Silverlight 的文本框中显示一些值,但我需要设置一个保持不变的单位值。

示例:

100 gpm

我需要更改值 (100),但单位 (gpm) 应始终保持不变。

这是我当前的绑定。

<TextBox Text="{Binding Path=Current.SystemDemand,Mode=TwoWay}" />

如果您在 TextBox 上使用绑定,您可以设置绑定的格式。

这是在 Xaml

中设置格式的方法
<TextBox x:Name="myTextBox" Text="{Binding Path=Current.SystemDemand, Mode=TwoWay, StringFormat='\{0} gpm'}" />

问题作者的方法和接受的答案的共同点是他们混淆了(可编辑)值和(不可编辑)单位。

为什么不在 TextBox 的末尾放置一个包含单位的普通 TextBlock

您甚至可以使用 Grid 让单位显示 "inside" TextBox

<Grid>
    <TextBox Text="{Binding...StringToNumberConverter...etc}" Padding="0,0,24,0"/>
    <TextBlock Text="gpm" HorizontalAlignment="Right" IsHitTestVisible="false"/>
</Grid>