我的代码如下:
<TextBox >
<TextBox.Text>
<Binding Path="SaveAsText" ValidatesOnDataErrors="True" ValidatesOnExceptions="True" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<val:SaveTextValidator></val:SaveTextValidator>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors), Converter={StaticResource errorConverter}}"/>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
现在,当验证错误发生时,显示工具提示,但是将TextBox边框设为红色的默认验证模板未触发 !!
我哪里错了?
答案 0 :(得分:0)
你正在覆盖TextBox的默认样式(基本上是说:除非我告诉你,否则什么都不做。)
我想在默认样式中有一些触发器使边框变红。要么自己实现,要么将你的风格基于当前的默认值。
<Style BasedOn={x:Type TextBox} ...>