WPF DataBinding: Nullable Int todavía recibe un error de validación?


Tengo un textbox databound a un int nullable a través de código. Si borro los datos del cuadro de texto me da un error de validación (borde rojo alrededor de él).

Aquí está mi código vinculante:

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

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

Está claramente marcado como Nullable, así que ¿por qué WPF quiere darme un problema de validación cuando borro el cuadro de texto?

Author: m-y, 2010-07-21

2 answers

La validación está fallando porque no puede convertir la cadena vacía a un entero nullable. Establezca TargetNullValue en string.vacía en el Enlace y convertirá la cadena vacía a null, que será válida.

 77
Author: Quartermeister,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-21 18:35:52

Un cuadro de texto vacío != nulo.

Es posible que tenga que modificar el ValidationRule para acomodar cadenas vacías como entradas. O bien, puede crear un convertidor para tomar cadenas vacías y convertirlas en null.

 0
Author: Eric Olsson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-21 18:13:04