2010-04-30 10 views
7

Ho un ExceptionValidationRule sul mio TextBox:ExceptionValidationRule non reagisce alle eccezioni

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

e MyProperty sembra che:

private int myProperty; 

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

In modalità DEBUG, applicazione si blocca con un'eccezione non gestita "LOL that's an error" (WPF Binding Engine non cattura questo e penso che dovrebbe ...).

Nella modalità RELEASE, tutto funziona correttamente.

Qualcuno può dirmi, perché diavolo sta accadendo? E come posso risolvere questo?

+0

È stato associato un evento UnhandledException? – Krimson

risposta

8

La soluzione non è così ovvia né ben documentata, ma abbastanza semplice. Il motivo per cui Visual Studio si interrompe per le eccezioni durante l'esecuzione in modalità di debug è perché è configurato in questo modo.

Nel menu Debug, selezionare "Eccezioni ...". In questa finestra di dialogo si controlla come VS gestisce le eccezioni. Semplicemente deselezionare "Utente non gestito" per "Common Language Runtime Exceptions", premere OK ed eseguire nuovamente il progetto.

+0

Grazie mille .. Mi sono rotto la testa a causa dello stesso problema. Grazie mille – Shee

+0

Quindi, quindi, cosa succede viene generata un'eccezione e WPF * non la cattura * in modo soddisfacente. Funziona ancora il Debugger? –

Problemi correlati