如何更改AdornerLayer以显示ValidationError(WPF)

时间:2018-05-06 07:27:32

标签: wpf wpf-controls adorner adornerlayer adornerdecorator

我创建了RangeBase的后代。在这个后代我创建了模板,我使用TextBox控件。现在我需要验证值(继承的RangeBase)当无效值输入到TextBox(包含在模板中)。
这是我的问题:如果我想验证新的后代控件,只有TextBox装饰有验证错误(使用适当的ControlTemplate) - TextBox在Text属性()的绑定中包含适当的验证
但是我需要它作为一个整体(不仅仅是TextBox)装饰我的新控件:enter image description here
有没有办法做到这一点?
也许需要更改AdornerLayer,以便装饰器不会出现在TextBox上,而是放在我的新元素上。

1 个答案:

答案 0 :(得分:0)

您需要将adorner网站从经过验证的控件移动到主控件(RangeBase的后代)。为此,您只需使用:

  

Validation.ValidationAdornerSite =“{结合   RelativeSource = {RelativeSource Mode = TemplatedParent}}“

附加属性到TextBox。