3

我有自己的错误提供程序,不想使用任何内置的 WPF 东西。我有一个绑定到整数的文本框,并且我有 ValidatesOnExceptions=False 和 ValidatesOnDataErrors=False。但是当我在文本框中输入一个非整数时,我会得到一个红色边框。有什么我想念的吗?

4

1 回答 1

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 模板的本地副本并删除与绑定验证错误相关的所有内容

于 2012-07-31T16:22:54.940 回答