我有一个文本框数据绑定到可以通过代码的可空int。如果我从文本框中删除数据,它会给我一个验证错误(围绕它的红色边框)。
这是我的绑定代码:
ZipBinding = new Binding("Zip");
ZipBinding.Source = Address;
zipTextBox.SetBinding(TextBox.TextProperty, ZipBinding);
public Int32? Zip { get { ... } set { ... } }
它清楚地标记为Nullable,那么为什么当我清除文本框时WPF想给我一个验证问题?
答案 0 :(得分:85)
验证失败,因为它无法将空字符串转换为可以为空的整数。在绑定上将TargetNullValue设置为string.empty,它会将空字符串转换为null,这将是有效的。
答案 1 :(得分:0)
空TextBox!= null。
您可能需要调整ValidationRule以容纳空字符串作为条目。或者,您可以创建一个转换器来获取空字符串并将它们转换为null。