WPFではバインディングは非常に強力です。Numberプロパティ(null許容整数)があり、テキストボックスにバインドされているとします。
エラーがスローされたときに、プロパティに最後の正しい値があることに気付きました。
つまり、これらはプロセスです。
TEXTBOX: "" PROPERTY: null
TEXTBOX: "2" PROPERTY: 2
TEXTBOX: "2b" PROPERTY: 2 <-- here is the problem, should be null instead 2(by the error)
エラーが発生したときにバインディングがnull値を設定する方法はありますか?
IDataErrorInfoを実装する必要があると言う人もいますが、インターフェイスはビジネスルールを検証するためのものだと思います。だから私はそれを使用することを好まないでしょう。
アップデート:
<TextBox Text="{Binding Number, UpdateSourceTrigger=PropertyChanged,
ValidatesOnExceptions=True, ValidatesOnDataErrors=True,
NotifyOnValidationError=True, TargetNullValue={x:Static sys:String.Empty}}"