Как изменить AdornerLayer для отображения ValidationError (WPF)

Я создал потомка RangeBase. В этом потомке я создал шаблон, где я использовал элемент управления TextBox. Теперь мне нужно проверить значение (унаследованного RangeBase), когда недопустимое значение вводится в TextBox(содержится в шаблоне).
И вот моя проблема: если я хочу проверить новый дочерний элемент управления, только TextBox украшен ошибкой проверки (используя соответствующий ControlTemplate) - TextBox содержит соответствующую проверку в привязке свойства Text ( )
Но мне нужно, чтобы он был украшен моим новым элементом управления, в целом (не только TextBox): ,
Есть ли способ сделать это?
Возможно, необходимо изменить AdornerLayer, чтобы рекламодатель появлялся не в TextBox, а в моем новом элементе.

1 ответ

Вам нужно переместить сайт рекламодателя из проверенного элемента управления в основной элемент управления (потомок RangeBase). Для этого вы можете просто использовать:

Validation.ValidationAdornerSite = "{Binding RelativeSource = {RelativeSource Mode = TemplatedParent}}"

прикрепленное свойство к TextBox.

Другие вопросы по тегам