WPF ValidatesOnDataErrors = False无法正常工作

时间:2012-07-31 15:52:45

标签: c# wpf validation

我有自己的errorprovider,不想使用任何内置的WPF内容。我有一个绑定到整数的文本框,我有ValidatesOnExceptions = False和ValidatesOnDataErrors = False。但是当我在文本框中输入一个非整数时,我得到一个红色边框。有什么我想念的吗?

1 个答案:

答案 0 :(得分:2)

你有几个选择

  1. 您可以将数据类型更改为字符串,以便默认转换器在转换数据时不会引发异常。
  2. 当您尝试将字符串转换为整数时,可以使用不会引发异常的自定义值转换器

    class CustomConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return value.ToString();
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            int x = -1;
            Int32.TryParse(value.ToString(), out x);
            return x;
        }
    }
    
  3. 您可以将UpdateSourceTrigger更改为显式,并在更新数据绑定时精确控制。

  4. 您可以使用表达式混合编辑TextBox模板的本地副本,并删除与绑定验证错误相关的所有内容