我很难在可为空的 DB 字段上将空的 TextBox 设置为空。
XAML
<y:TextBox Text="{Binding Year1Cost, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
NotifyOnValidationError=True,
ValidatesOnDataErrors=True,
ValidatesOnExceptions=True,
StringFormat=\{0:c\}}" Grid.Row="3" Grid.Column="1" />
当我在其中输入任何值时,绑定(bind)很好并且输入的值被传递
当我单独留下一个空值时,会传递一个空值
如果我从 TextBox 中删除值,则传递的值是 Textbox 的原始值,并且 UI 不会通知更改
Grrrrrrrrrrrrrrrr
我花了很长时间检查选项
只是将代码放在每个可为空字段的 OnTextChanged 后面,我看不到这样做的效率。
提前致谢:
附言。看过 TargetNullValue 没有成功
Visual Studio 2008 - SP1 - .Net 3.5
最佳答案
设置属性TargetNullValue
绑定(bind)到 String.Empty
:
<TextBox Text="{Binding TargetNullValue={x:Static sys:String.Empty}}"/>
我试过了,它对我有用。
如果我没有错(如果我错了,请原谅我),你应该像这样设置属性 StringFormat:
StringFormat={}{0:C}
这甚至可能是您遇到异常的原因。
关于wpf - 清除文本框不会将绑定(bind)设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062686/