При связывании с ValidatesOnException выдается Unhandled-Error в .Net4 - PullRequest
2 голосов
/ 27 сентября 2010

Я столкнулся с очень раздражающим изменением для меня с .NET3.5 на .NET4.0. При использовании ExceptionValidationRule в привязке для проверки исключения, которое выдается в установщике связанных свойств, обрабатывается привязкой в ​​3.5. В 4.0 он выбрасывается как необработанный во время отладки.

Изменение целевого фреймворка с 3.5-> 4.0 в этом небольшом примере (новый проект приложения WPF) показывает проблему:

MainWindow.xaml.cs:

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;
        }

        private string _field = "Test";
        public string Property
        {
            get { return _field; }
            set
            {
                if (value.Length < 4)
                    _field = value;
                else
                    throw new ArgumentException();
            }
        }
    }

MainWindow.xaml

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Height="350"
        Width="525">
    <TextBox Width="300"
             Height="100"
             VerticalAlignment="Center"
             HorizontalAlignment="Center"
             Text="{Binding Property, ValidatesOnExceptions=True, UpdateSourceTrigger=PropertyChanged}" />
</Window>

Возможно ли обработать эти исключения во время отладки в .NET4.0?

1 Ответ

2 голосов
/ 12 января 2011

Вы должны использовать IDataErrorInfo и ValidatesOnDataErrors.Вы не только не сталкиваетесь с подобными ситуациями, но также избегаете ощутимого снижения производительности, связанного с появлением исключений в стеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...