WPF DataBinding:可空的Int仍然得到validation错误?

我有一个文本框的数据绑定到一个可空的int通过代码。 如果我从文本框中删除数据,它会给我一个validation错误(红色边框)。

这是我的绑定代码:

ZipBinding = new Binding("Zip"); ZipBinding.Source = Address; zipTextBox.SetBinding(TextBox.TextProperty, ZipBinding); public Int32? Zip { get { ... } set { ... } } 

它清楚地标记为Nullable所以为什么WPF想给我一个validation问题,当我清除文本框?

validation失败,因为它不能将空string转换为可为空的整数。 将Binding上的TargetNullValue设置为string.empty,将空string转换为null,这将是有效的。

一个空的TextBox!= null。

您可能需要调整ValidationRule来容纳空string作为条目。 或者,您可以创build一个转换器,将空string转换为空值。