Шаблон ошибки валидации не отображается при ошибках данных

Это что-то вроде детектива WPF! Мои храмы проверки: он не появляется, когда ожидалось

Проблема

В основном, я использую IDataErrorInfo в моей модели представления, чтобы предоставить обратную связь об ошибках ввода данных. Я вижу, что он вызывается и работает должным образом, но шаблон ошибки проверки для связанного элемента управления никогда не отображается в WPF!

Я пробовал использовать как встроенный шаблон ошибки красной границы текстового поля по умолчанию, шаблон ошибки стиля, так и жестко закодированный шаблон. Ничего из этого не отображается в случае ошибки данных.

Вот мой код привязки xaml:

<TextBox x:Name="txtCaseNumber"  
Text="{Binding Path=CaseNumber, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>

Как ни странно, ошибка попадает в коллекцию Validation.Errors. Следующий код приводит к тому, что мое сообщение об ошибке IDataErrorInfo отображается рядом с привязанным элементом управления. Это наводит меня на мысль, что проблема находится на стороне xaml, а не на стороне модели представления.

<ContentPresenter 
Content="{Binding ElementName=txtCaseNumber, Path=(Validation.Errors).CurrentItem}" />

Кроме того, System.Windows.Controls.Validation.GetHasError (txtCaseNumber) возвращает истину.

Я размещаю WPF в winforms, если это имеет значение. Я не могу найти в своем коде или стилях ссылок на Validation или ErrorTemplate, поэтому я почти уверен, что это не собственная цель стилизации.

20
задан Noel Kennedy 31 August 2011 в 10:28
поделиться