コードを介してnull許容整数にデータバインドされたテキストボックスがあります。テキストボックスからデータを消去すると、検証エラー(周囲の赤い境界線)が表示されます。
これが私のバインディングコードです:
ZipBinding = new Binding("Zip");
ZipBinding.Source = Address;
zipTextBox.SetBinding(TextBox.TextProperty, ZipBinding);
public Int32? Zip { get { ... } set { ... } }
Nullableとして明確にマークされているのに、テキストボックスをクリアしたときにWPFで検証の問題が発生するのはなぜですか?
空の文字列をNULL可能整数に変換できないため、検証は失敗します。バインディングで TargetNullValue をstring.emptyに設定すると、空の文字列がnullに変換されます。これは有効です。
空のTextBox!= null。
空の文字列をエントリとして収容するには、ValidationRuleを微調整する必要がある場合があります。または、空の文字列を取得してnullに変換するコンバーターを作成することもできます。