绑定StringFormat的值

时间:2014-11-19 08:02:34

标签: c# wpf binding string-formatting

我有一个文本框,其ValueUnit绑定如下:

<TextBox Text="{Binding Path=Value,StringFormat='{}{0} mm'}" />

单位mm也应绑定到ViewModel财产Unit。这可以通过Multibinding来完成:

<TextBox>
   <TextBox.Text>
      <MultiBinding StringFormat="{}{0} {1}">
         <Binding Path="Value"
            Mode="TwoWay" />
         <Binding Path="Unit"
            Mode="OneWay" />
      </MultiBinding>
   </TextBox.Text>
</TextBox>

但有了这个,我失去了我的双向绑定,我也不想编辑单位。如果用户删除&#34; 8 mm&#34;并且进入&#34; 8&#34;绑定应该自动重新评估绑定,并通过正常的字符串格式绑定添加单元。

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

<TextBox>
   <TextBox.Text>
      <Binding Path="Value"
         StringFormat="{Binding Path=ValueUnitStringFormat}" />
   </TextBox.Text>
</TextBox>

但遗憾的是StringFormat上的BindingBase财产不是DependencyProperty

任何人都有解决方案吗?

0 个答案:

没有答案