AutoValidate Property

バリデートが開始されない原因は、WindowsForms2.0から追加されたプロパティである、System.Windows.Forms.FormクラスのAutoValidateプロパティが原因だった。

Form.AutoValidate プロパティ 
                                                                                                            • -
public override AutoValidate AutoValidate { get; set; }

このプロパティをAutoValidate.Disableで初期化していたせいで、一切の検証イベントが全く発生せず、データバインドの同期も行われなかったのだが、正直こんなプロパティを設定した記憶も無い。既定値はEnablePreventFocusChangeなので、どこかで設定したのは間違いないのだが...

そもそも、データバインドのタイミングがバリデーションの有無に依存していることが問題だと思ったのだが、こんなポカにはまるのは私くらいなものか。