Я пытаюсь реализовать проверку привязки с помощью Silverlight на Windows Phone, но все, что я получаю, это взлом отладчика вместо необработанного исключения, а проверка не происходит.
Я следую рекомендациям из статьи MSDN о Привязка данных .
Вот что я пытался сделать, чтобы настроить его:
Отладка -> Исключения -> Общепринятые языковые исключения во время выполнения - необработанный пользователь не проверен
В шаблоне данных для ListBoxItem я объявляю двустороннюю привязку с проверками:
<TextBox x:Name="LastReadingValue" Text="{Binding LastReadingValue, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" />
В установщике я вызываю исключение, если данные TextBox неверны:
public string LastReadingValue
{
get
{
return _lastReadingValue;
}
set
{
try
{
double reading = System.Convert.ToDouble(value);
_lastReadingValue = String.Format("{0:0.00}", reading);
}
catch (FormatException fe)
{
throw new Exception("The meter reading must be a number like 7561.41");
}
NotifyOfPropertyChanged("LastReadingValue");
}
}
В ListBox я объявляю обработчик для события BindingValidationError:
<ListBox x:Name="NewMeterReadingsListBox" ItemsSource="{Binding Meters}" ItemTemplate="{StaticResource NewMeterReadingDataTemplate}" BindingValidationError="ListBox_BindingValidationError"/>
Обработчик для BindingValidationError никогда не вызывается:
private void ListBox_BindingValidationError(object sender, ValidationErrorEventArgs e)
{
Debug.WriteLine("BindingValidationError");
}