WPF DataBinding: Nullable Int все еще получает ошибку проверки? - PullRequest
46 голосов
/ 21 июля 2010

У меня есть текстовое поле, привязанное к обнуляемому int через код. Если я удаляю данные из текстового поля, это дает мне ошибку проверки (красная рамка вокруг нее).

Вот мой обязательный код:

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

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

Он явно помечен как Nullable, так почему WPF хочет выдать мне проблему с проверкой, когда я очищаю текстовое поле?

Ответы [ 2 ]

85 голосов
/ 21 июля 2010

Проверка не пройдена, поскольку она не может преобразовать пустую строку в обнуляемое целое число. Установите TargetNullValue на string.empty в Binding, и она преобразует пустую строку в null, что будет допустимо.

0 голосов
/ 21 июля 2010

Пустой TextBox! = Null.

Возможно, вам придется настроить ValidationRule для размещения пустых строк в качестве записей.Или вы можете создать конвертер, который будет принимать пустые строки и преобразовывать их в нуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...