2010-04-30 11 views
7

Tengo una ExceptionValidationRule en mi cuadro de texto:ExceptionValidationRule no reacciona a las excepciones

<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}" /> 

y MyProperty parece que:

private int myProperty; 

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

En DEBUG modo, la aplicación se bloquea con excepción no controlada "LOL that's an error" (WPF Binding Engine no detecta esto y creo que debería ...).

En el modo RELEASE, todo funciona bien.

¿Puede alguien decirme, por qué demonios está sucediendo esto? ¿Y cómo puedo solucionar esto?

+0

¿Tiene asociado un evento UnhandledException? – Krimson

Respuesta

8

La solución no es tan obvia ni está bien documentada, pero es lo suficientemente simple. La razón por la que Visual Studio se rompe por las excepciones cuando se ejecuta en modo de depuración es porque está configurada de esa manera.

En el menú Depurar, seleccione "Excepciones ...". En este diálogo, usted controla cómo VS maneja las excepciones. Simplemente desmarque "No gestionado por el usuario" para "Excepciones de Common Language Runtime", presione OK y vuelva a ejecutar su proyecto.

+0

Muchas gracias ... He estado rompiendo mi cabeza debido al mismo problema. Muchas gracias – Shee

+0

Entonces, ¿qué ocurre? Se dispara una excepción y WPF * no * lo capta con gracia. ¿El depurador todavía funciona entonces? –

Cuestiones relacionadas