默认验证模板未在WPF中触发

时间:2010-12-06 08:02:31

标签: validation xaml textbox tooltip

我的代码如下:

<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边框设为红色的默认验证模板未触发 !!
我哪里错了?

1 个答案:

答案 0 :(得分:0)

你正在覆盖TextBox的默认样式(基本上是说:除非我告诉你,否则什么都不做。)

我想在默认样式中有一些触发器使边框变红。要么自己实现,要么将你的风格基于当前的默认值。

<Style BasedOn={x:Type TextBox} ...>