绑定类型不匹配时发生WPF异常



当应该绑定的类型不匹配时,WPF抛出了什么样的异常?例如,如果我将TextBoxText属性绑定到integer属性,然后在文本字段中键入一些字母(例如:abc) ?

你对所谓的"验证"感兴趣。有一个默认的验证,我相信,与将整数绑定到文本等相关,应该会自动触发。

默认情况下,它突出显示红色矩形中的文本框并显示错误消息。重要的是,它不会更新source属性。

您可以添加自定义数据验证消息(以及其他标准)。为此,将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 "";
        }
    }

最新更新