web-dev-qa-db-ja.com

WPF DataBinding:Nullable Intはまだ検証エラーを受け取りますか?

コードを介してnull許容整数にデータバインドされたテキストボックスがあります。テキストボックスからデータを消去すると、検証エラー(周囲の赤い境界線)が表示されます。

これが私のバインディングコードです:

ZipBinding = new Binding("Zip");
ZipBinding.Source = Address;
zipTextBox.SetBinding(TextBox.TextProperty, ZipBinding);

public Int32? Zip { get { ... } set { ... } }

Nullableとして明確にマークされているのに、テキストボックスをクリアしたときにWPFで検証の問題が発生するのはなぜですか?

48
m-y

空の文字列をNULL可能整数に変換できないため、検証は失敗します。バインディングで TargetNullValue をstring.emptyに設定すると、空の文字列がnullに変換されます。これは有効です。

86
Quartermeister

空のTextBox!= null。

空の文字列をエントリとして収容するには、ValidationRuleを微調整する必要がある場合があります。または、空の文字列を取得してnullに変換するコンバーターを作成することもできます。

0
Eric Olsson