我有一个WPF TextBox
,它通过 Caliburn.Micro 命名约定绑定到视图模型编号属性Distance
。我希望能够自定义TextBox
字符串格式,同时保留 Caliburn.Micro 已设置的约定绑定。我该怎么做?
从我的查看模型:
public double Distance
{
get { return _distance; }
set
{
_distance = value;
NotifyOfPropertyChange(() => Distance);
}
}
从我的查看:
<TextBox x:Name="Distance"/>
当Distance
非零时,我想显示带有一组固定小数的数字,当Distance
为零时,我希望文本框为空。
使用显式绑定我可以将TextBox.Text
属性绑定到Distance
,然后我可以同时设置StringFormat
:
<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>
但是,显式Text
绑定会使 Caliburn.Micro 命名约定绑定短路。是否可以自定义字符串格式而无需同时设置TextBox.Text
属性的绑定路径,这样我就可以完全依赖 Caliburn.Micro 来处理Distance
到 - TextBox
绑定?
答案 0 :(得分:2)
没有可能的方法来做你想做的事。最简单的方法是你自己提供。 第二种方法是在ViewModel中公开string属性并在getter中预格式化它。