ExceptionValidationRule не реагирует на исключения - PullRequest
7 голосов
/ 01 мая 2010

У меня есть ExceptionValidationRule на моем TextBox:

<Window.Resources>
    <Style x:Key="textStyleTextBox" TargetType="TextBox">
        <Style.Triggers>
            <Trigger Property="Validation.HasError" Value="true">
                <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

<TextBox x:Name="myTextBox"
    {Binding Path=MyProperty, ValidatesOnExceptions=True}"
    Style="{StaticResource ResourceKey=textStyleTextBox}" />

и MyProperty выглядит так:

private int myProperty;

public int MyProperty
{
    get { return myProperty; }
    set
    {
        if(value > 10)
            throw new ArgumentException("LOL that's an error");
        myProperty = value;
    }
}

В режиме DEBUG приложение вылетает с необработанным исключением "LOL that's an error" (WPF Binding Engine не улавливает это, и я думаю, что должно ...).

В режиме RELEASE все работает нормально.

Может кто-нибудь сказать мне, какого черта это происходит? И как я могу это исправить?

1 Ответ

8 голосов
/ 01 апреля 2011

Решение не так очевидно и не задокументировано, но достаточно просто. Причиной прерывания Visual Studio для исключений при работе в режиме отладки является то, что он настроен таким образом.

В меню «Отладка» выберите «Исключения ...». В этом диалоговом окне вы управляете тем, как VS обрабатывает исключения. Просто снимите флажок «Необработанный пользователь» для «Общих исключений во время выполнения», нажмите OK и снова запустите проект.

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