当应该绑定的类型不匹配时,WPF抛出什么样的异常?例如,如果我将Text
的{{1}}属性绑定到TextBox
属性,而不是在文本字段中键入一些字母(例如: abc )? / p>
答案 0 :(得分:0)
您对称为"验证"的内容感兴趣。我认为,默认验证与将整数绑定到文本等相关联,应该会自动触发。
默认情况下,它会突出显示红色矩形中的文本框并显示错误消息。它也至关重要,不会更新源属性。
您可以添加自定义数据验证消息(以及其他条件)。为此,请将ValidatesOnDataErrors="True"
添加到绑定中:
<TextBox Text="{Binding MyInteger, ValidatesOnDataErrors=True}" Width="100" Margin="20"/>
让您的数据上下文继承IDataErrorInfo
并实现如下:
public string Error
{
get
{
return string.Empty;
}
}
public string this[string columnName]
{
get
{
if (columnName == "MyInteger")
{
if (MyInteger < 0)
{
return "Must be an integer greater than 0!";
}
}
return "";
}
}