我有一个文本框,其Value
和Unit
绑定如下:
<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
。
任何人都有解决方案吗?