2010-04-30 29 views
7

Tôi có một ExceptionValidationRule trên TextBox của tôi:ExceptionValidationRule không phản ứng với trường hợp ngoại lệ

<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 trông như thế:

private int myProperty; 

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

Trong chế độ DEBUG, ứng dụng bị treo với ngoại lệ unhandled "LOL that's an error" (WPF Binding Engine không bắt được điều này và tôi nghĩ nó nên ...).

Ở chế độ RELEASE, mọi thứ đều hoạt động tốt.

Ai đó có thể cho tôi biết, lý do tại sao địa ngục là điều này xảy ra? Và làm thế nào tôi có thể sửa lỗi này?

+0

Bạn có sự kiện UnhandledException được đính kèm không? – Krimson

Trả lời

8

Giải pháp không rõ ràng cũng như không được ghi chép đầy đủ, nhưng đơn giản là đủ. Lý do Visual Studio phá vỡ các ngoại lệ khi chạy trong chế độ gỡ lỗi là vì nó được định cấu hình theo cách đó.

Trong menu Gỡ lỗi, chọn "Ngoại lệ ...". Trong hộp thoại này, bạn kiểm soát cách VS xử lý các ngoại lệ. Đơn giản chỉ cần bỏ chọn "Người dùng-unhandled" cho "Common Language Runtime Exceptions", nhấn OK và chạy lại dự án của bạn.

+0

Cảm ơn bạn rất nhiều .. Tôi đã phá vỡ đầu của tôi do cùng một vấn đề. Cảm ơn rất nhiều – Shee

+0

Vì vậy, sau đó những gì xảy ra một ngoại lệ được bắn và WPF * không * duyên dáng bắt nó. Liệu Debugger có còn hoạt động không? –

Các vấn đề liên quan