ComboBox的DataBinding将重置无效的TextBox值

时间:2013-04-13 14:13:26

标签: c# validation data-binding

情况:带有TextBox和ComboBox的C#Windows窗体应用程序。 AutoValidate设置为EnableAllowFocusChange。

TextBox表示并显示为百分比值,例如“10%”存储为int。两个输入控件都是数据绑定,TextBox带有解析和格式化ConvertEventHandler以及Validating CancelEventHandler。

输入“abc”之类的无效输入并离开控件时:执行我的验证并失败(e.Cancel = true,ErrorProvider ..)。我的解析失败了(e.Value保持“abc”)。

问题:当我现在更改ComboBox的值并保留它(失去焦点/执行验证)或执行ValidateChildren时,我的格式函数将使用上一个有效百分比值调用并且错误输入丢失。

Stacktrace:该问题由ComboBox的ReportPropertyChanged触发,并导致Binding.PushData,FormatObject和OnFormat - >其中使用原始值调用我的格式函数。

我希望我的TextBox保持无效并且没有神奇的重置。我该怎么做才能防止重置值?或者我做错了什么?

谢谢!

0 个答案:

没有答案