zoukankan      html  css  js  c++  java
  • WPF ValidationRule的特点(默认目标-源才校验)

    默认是当目标发生改变时候,通过绑定改变源时候进行校验,因为WPF认为源是安全的,如果想让源改变时候,也进行校验则设置验证规则的ValidatesOnTargetUpdated =true


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Shapes;


    namespace XamlTest
    {
        /// <summary>
        /// Interaction logic for Window16.xaml
        /// </summary>
        public partial class Window16 : Window
        {
            public Window16()
            {
                InitializeComponent();
                Binding b = new Binding();
                b.Source= slider;
                b.Path = new PropertyPath("Value");
                b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                RangeValidationRule vr = new RangeValidationRule();
                //vr.ValidatesOnTargetUpdated =true;
                b.NotifyOnValidationError = true;
                b.ValidationRules.Add(vr);
                txt.SetBinding(TextBox.TextProperty, b);
                txt.AddHandler(Validation.ErrorEvent,new RoutedEventHandler(this.ValidationError));
            }


            private void ValidationError(object sender, RoutedEventArgs e)
            {
                if (Validation.GetErrors(txt).Count>0)
                {
                    txt.ToolTip = Validation.GetErrors(txt)[0].ErrorContent.ToString();
                }
            }
        }
    }
  • 相关阅读:
    Notification的使用
    Spring面向切面之AOP深入探讨
    使用注解配置Spring框架自动代理通知
    回顾Spring框架
    Spring利器之包扫描器
    Spring 核心概念以及入门教程
    Struts 2之动态方法调用,不会的赶紧来
    Struts2之过滤器和拦截器的区别
    Struts 2开讲了!!!
    Mybatis开篇以及配置教程
  • 原文地址:https://www.cnblogs.com/dxmfans/p/9434626.html
Copyright © 2011-2022 走看看