绑定的TextBox值在验证和验证之间丢失

时间:2013-01-16 14:49:53

标签: .net winforms data-binding .net-4.0

我在绑定到实体框架对象(1 DateTimePicker,1 ComboBox和2 TextBoxes)的窗体上有几个控件。 DataSourceUpdateModeOnValidation(默认),表单的AutoValidate属性设置为EnableAllowFocusChangeDateTimePickerComboxBox的绑定按预期工作。

但是,当我在TextBox中输入内容时,当我退出时,该值会消失。两个TextBox控件都经过验证。在Validating事件处理程序中,我可以看到每个Text的{​​{1}}属性中的值。但是,当我到达Validated事件处理程序时,TextBox值将被设置回空字符串。

编辑:

经过一些实验,似乎与我将Text控件绑定到TextBox类型的属性这一事实有关。我创建了一个小型测试项目,其中包含一个包含单个System.Nullable(Of Short)属性的类。当我将带有单个System.Nullable(Of Short)的表单绑定到该属性时,我遇到了同样的问题。但是,如果我将该属性更改为TextBox类型,则可以正常工作。

1 个答案:

答案 0 :(得分:0)

基于Stuart Dunkeld在评论(https://stackoverflow.com/a/3524691/43846)中链接的问题,我发现在绑定到可空类型时,绑定的FormattingEnabled属性必须设置为true