Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

数値をバインドしてるTextBoxの入力値が空になるとエラーになる

現象の説明はこちらに詳しい。

Decimal? とかでnull許容型にしているデータをTextBoxへバインドすると、入力値を消して空にしたときに、赤枠でエラーが出る。何か入力したあとにバックスペースで空文字にすると、空文字として扱われてしまうため、NULLに変換できないためにそのようなことが起こる。 tawamuredays.blog.fc2.com

上記の記事ではConveter作っていたけど、実はBindingにそのようなためのプロパティがある。TargetNullValueだ。 blog.okazuki.jp

<TextBox Text="{Binding Path=NumberInput, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}" />

これで空文字のときはnullと同等の扱いとなる。めでたしめでたし。