如果在扩展器中保存的控件中发生IDataError验证,是否有人知道更改扩展器样式的方法。 E.g。
<Expander Header="Details">
<TextBox Text="{Binding Brand.DESCRIPTION,
UpdateSourceTrigger=LostFocus,
ValidatesOnDataErrors=True}"/>
</Expander>
因此,如果文本框有错误,我的扩展器的样式将会改变(可能会变红)。 我希望尽可能使其成为通用的,以便在可能的情况下手动绑定到扩展器中的每个控件。
答案 0 :(得分:2)
您可以通过附加行为使用附加事件Validation.Error
(每次添加或删除验证错误时引发)。要完成这项工作,您需要将NotifyOnValidationError=True
添加到绑定中。
此附加行为ChildValidation
订阅了Validation.Error
的{{1}}事件,如果Expander
在绑定上设置为True,则该事件会冒泡。由于多个NotifyOnValidationError
可能位于Control
内,因此还需要跟踪当前处于活动状态的验证错误计数,以确定是否应显示红色边框。它可能看起来像这样
Xaml
Expander
ChildValidationBehavior
<Expander Header="Details"
behaviors:ChildValidationBehavior.ChildValidation="True">
<TextBox Text="{Binding Brand.DESCRIPTION,
UpdateSourceTrigger=LostFocus,
ValidatesOnDataErrors=True,
NotifyOnValidationError=True}"/>
</Expander>