C# 绑定StringFormat的值

C# 绑定StringFormat的值,c#,wpf,binding,string-formatting,C#,Wpf,Binding,String Formatting,我有一个文本框,其值和单位绑定如下: <TextBox Text="{Binding Path=Value,StringFormat='{}{0} mm'}" /> <TextBox> <TextBox.Text> <Binding Path="Value" StringFormat="{Binding Path=ValueUnitStringFormat}" /> </TextBox.Text&g

我有一个文本框,其值和单位绑定如下:

<TextBox Text="{Binding Path=Value,StringFormat='{}{0} mm'}" />
<TextBox>
   <TextBox.Text>
      <Binding Path="Value"
         StringFormat="{Binding Path=ValueUnitStringFormat}" />
   </TextBox.Text>
</TextBox>
但是这样我就失去了双向绑定,我也不想编辑这个单元。如果用户删除8 mm并输入8,则绑定应自动重新评估绑定并添加单元,因为它是通过正常字符串格式绑定完成的

所以最后我需要这样的东西:

<TextBox Text="{Binding Path=Value,StringFormat='{}{0} mm'}" />
<TextBox>
   <TextBox.Text>
      <Binding Path="Value"
         StringFormat="{Binding Path=ValueUnitStringFormat}" />
   </TextBox.Text>
</TextBox>
但不幸的是,BindingBase上的StringFormat属性不是DependencyProperty


有人对此有解决方案吗?

用户是否可以更改装置?为什么不使用转换器?对于刚输入8的用户,您可以使用BindingBase.FallbackValue。如果用户不能编辑装置,然后将其放入文本块,并在文本框后显示。@blindmeis单位不应由用户更改。