绑定类型不匹配时的WPF异常

时间:2016-08-11 10:12:38

标签: c# .net wpf exception binding

当应该绑定的类型不匹配时,WPF抛出什么样的异常?例如,如果我将Text的{​​{1}}属性绑定到TextBox属性,而不是在文本字段中键入一些字母(例如: abc )? / p>

1 个答案:

答案 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 "";
        }
    }