2010-04-30 20 views
7

TextBox'umda bir ExceptionValidationRule var:ExceptionValidationRule istisnalara tepki vermiyor

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

private int myProperty; 

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

DEBUG modunda, uygulama "LOL that's an error" işlenmemiş istisna ile çöküyor (WPF Binding Engine bunu yakalamıyor ve ben düşünmelisin ...).

RELEASE modunda, her şey düzgün çalışıyor.

Birisi bana diyebilir ki neden bu oluyor? Ve bunu nasıl düzeltebilirim?

+0

Ekli UnhandledException olayınız var mı? – Krimson

cevap

8

Çözüm çok açık veya iyi belgelenmiş değil, ancak yeterince basit. Visual Studio'nun hata ayıklama modunda çalıştırılırken istisnalar yapmasının nedeni, bu şekilde yapılandırılmış olmasıdır. Hata Ayıklama menüsünde "Özel Durumlar ..." seçeneğini belirleyin. Bu iletişim kutusunda, VS'nin istisnaları nasıl işlediğini kontrol edersiniz. Basitçe "Ortak Dil Çalışma Zamanı Özel Durumları" için "Kullanıcı tarafından işlenmemiş" işaretini kaldırın, Tamam'a basın ve projenizi tekrar çalıştırın.

+0

Çok teşekkür ederim ... Aynı problem yüzünden kafamı kırıyordum. Çok teşekkürler – Shee

+0

Yani ne olur bir istisna olur ve WPF * onu incelikle * yakalamaz. Hata Ayıklayıcı hala çalışıyor mu? –