Я столкнулся с очень раздражающим изменением для меня с .NET3.5 на .NET4.0.
При использовании ExceptionValidationRule в привязке для проверки исключения, которое выдается в установщике связанных свойств, обрабатывается привязкой в 3.5. В 4.0 он выбрасывается как необработанный во время отладки.
Изменение целевого фреймворка с 3.5-> 4.0 в этом небольшом примере (новый проект приложения WPF) показывает проблему:
MainWindow.xaml.cs:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
private string _field = "Test";
public string Property
{
get { return _field; }
set
{
if (value.Length < 4)
_field = value;
else
throw new ArgumentException();
}
}
}
MainWindow.xaml
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<TextBox Width="300"
Height="100"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{Binding Property, ValidatesOnExceptions=True, UpdateSourceTrigger=PropertyChanged}" />
</Window>
Возможно ли обработать эти исключения во время отладки в .NET4.0?