我有一个TextBox
,它绑定了一个不可为null的十进制值。这是我下面的XAML代码。我需要UpdateSourceTrigger
和ValidatesOnDataErrors=true
。
<TextBox
Text="{Binding Quantity, StringFormat=f2, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
/>
问题是在TextBox
上始终显示值0.00。当我开始在TextBox
上打字时,0.00总是在那里。要获取小数点后的值,应使用下一个箭头键。当键入一个小数点时,TextBox
允许两个小数点,但由于列出了属性的数据注释,它显示了一个错误,然后我们必须按下退格按钮来清除小数零点。当值为零时,如何使TextBox
显示空字符串?当我开始键入时,TextBox
应接受键入的值,而不显示0.00。
在没有测试过的情况下:您可以使用GotFocus事件或类似事件来检查当前值是否为0:
private void textbox1_GotFocus(Object sender, EventArgs e) {
TextBox tb = (sender as TextBox);
if(tb == null) return;
decimal d = 0;
if(Decimal.Parse(tb.Text, out d)) {
if(d==0) tb.Text = String.Empty;
}
}
还可以查看PreviewX事件。例如,PreviewKeyDown。