views:

46

answers:

2

I have a textbox databound to a nullable int through code. If I erase the data from the textbox it gives me a validation error (red border around it).

Here is my binding code:

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

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

It's clearly marked as a Nullable so why does WPF wanna give me a validation issue when I clear the textbox?

A: 

An empty TextBox != null.

You may have to tweak the ValidationRule to accommodate empty strings as entries. Or, you could create a converter to take empty strings and convert them to null.

Eric
So it's failing because it's trying to parse String.Empty into an Int32? ... If that's the case then yea, I guess I'll have to create a StringEmpty to Null Converter.
myermian
+2  A: 

Validation is failing because it can't convert the empty string to a nullable integer. Set TargetNullValue to string.empty on the Binding and it will convert the empty string to null, which will be valid.

Quartermeister
simple, one line. done :)
myermian