清除文本框不会将绑定设置为null

Tra*_*aci 6 data-binding wpf null textbox

我在Nulllable DB Field上将空TextBox设置为null时遇到困难.

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" />
Run Code Online (Sandbox Code Playgroud)

当我输入任何值时,绑定很好,输入的值被传递
当我单独留空值时传递null
如果我从TextBox中删除值,则传递的值是文本框的原始值,UI是没有通知变更Grrrrrrrrrrrrrrrr

我花了很长时间检查选项,只是把代码放在每个可空字段的OnTextChanged后面我无法看到这样做的效率.

提前致谢:

PS.看过TargetNullValue没有成功

Visual Studio 2008 - SP1 - .Net 3.5

Shi*_*mmy 14

TargetNullValue绑定的属性设置为String.Empty:

<TextBox Text="{Binding TargetNullValue={x:Static sys:String.Empty}}"/>
Run Code Online (Sandbox Code Playgroud)

我试了一下它对我有用.

如果我没有错(请原谅我,如果我),你应该像这样设置属性StringFormat:

StringFormat={}{0:C}
Run Code Online (Sandbox Code Playgroud)

这甚至可能是您获得例外的原因.


ito*_*son 4

考虑使用值转换器。您应该能够实现 ConvertBack 方法将空字符串转换为 null。