6
我有一个WPF TextBox
绑定到视图模型号码属性Distance
到Caliburn.Micro命名约定。我希望能够自定义TextBox
字符串格式,同时保留Caliburn.Micro已建立的约定绑定。我应该怎么做?定制Caliburn.Micro约定字符串格式约定TextBox
从我视图模型:
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
的绑定?
简答案是否定的。要么使用Caliburn生成的绑定,要么必须写出完整的绑定表达式,如同样例中所示。 – nemesv 2012-08-16 22:59:59
距离不一定是数字,它是您想要在视图中呈现的模型。因此,不要将该属性设置为Double,使其成为视图中所需的字符串。 – 2012-08-22 02:59:47
失败,只是手动绑定一切 - 唯一受名称约定约束的是默认的可绑定道具或操作。一个绑定是不是太可怕,看是不是? – Charleh 2013-05-03 18:02:40