• WPF数据验证(5)―― 错误模板


     <Style TargetType="{x:Type TextBox}">
                <Setter Property="Validation.ErrorTemplate">
                    <Setter.Value>
                        <ControlTemplate>
                            <DockPanel LastChildFill="True">
                                <TextBlock DockPanel.Dock="Bottom" Foreground="Red"
                                           Text="{Binding ElementName=adorned,Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"/>
                                <Border BorderBrush="Red" BorderThickness="1">
                                    <AdornedElementPlaceholder x:Name="adorned"/>
                                </Border>
                            </DockPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

      AdornedElementPlaceholder 是这种技术能够工作的粘合剂。她代表控件自身,位于元素层中。通过使用 AdornedElementPlaceholder 元素,能够在文本框背后安排自己的内容。

      

    该模板放在资源文件中

    <ControlTemplate x:Key="InputErrorTemplate">

            <DockPanel>
                <Ellipse 
                      DockPanel.Dock="Right" 
                      Margin="2,0"
                      ToolTip="Contains invalid data"
                      Width="10" Height="10"   
                      >
                    <Ellipse.Fill>
                        <LinearGradientBrush>
                            <GradientStop Color="#11FF1111" Offset="0" />
                            <GradientStop Color="#FFFF0000" Offset="1" />
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <AdornedElementPlaceholder />
            </DockPanel>

        </ControlTemplate>

        <Style TargetType="TextBox">
            <Setter Property="Validation.ErrorTemplate" 
                    Value="{StaticResource InputErrorTemplate}" 
             />
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="True">
                    <Setter Property="ToolTip">
                        <Setter.Value>
                            <Binding 
                                Path="(Validation.Errors).CurrentItem.ErrorContent"
                                RelativeSource="{x:Static RelativeSource.Self}"
                                />
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>

        </Style>

    出错效果是在文本框中显示TOOLTIP提示

     
  • 相关阅读:
    Python中的类(上)
    Django REST Framework API Guide 07
    Django REST Framework API Guide 06
    Django REST Framework API Guide 05
    Django REST Framework API Guide 04
    Django REST Framework API Guide 03
    Django REST Framework API Guide 02
    Django REST Framework API Guide 01
    Django 详解 信号Signal
    Django 详解 中间件Middleware
  • 原文地址:https://www.cnblogs.com/sjqq/p/6951230.html
Copyright © 2020-2023  润新知