zoukankan      html  css  js  c++  java
  • wpf 验证方法

    效果图,当放鼠标到文本框上会显示出错的提示。

    1、在对文本框绑定属性Count,并在绑定属性时添加NotifyOnValidationError=True,ValidatesOnExceptions=True,当通知更新源时会触发验证,如果验证失败则会触发Validation.Error事件,此事件是隧道事件,可以写在上一层对象中

       <Grid Validation.Error="Grid_Error">
            <TextBox Name="txt"  Text="{Binding Path=Count,UpdateSourceTrigger=PropertyChanged,NotifyOnValidationError=True,ValidatesOnExceptions=True}"/>
        </Grid>

    2、验证过程放在属性的set中,如下MyValide,失败时抛出异常。

            private int c;
    
            public int Count
            {
                get { return c; }
                set
                {
                    MyValide(value);
                    c = value;
                    if (PropertyChanged != null)
                    {
                        PropertyChanged(this, new PropertyChangedEventArgs("Count"));
                    }
                }
            }
    
            public void MyValide(int v)
            {
                if(Regex.Match(v.ToString(),@"^d{6}$").Success==false)
                {
                    throw new ArgumentException("请填写6个数字!");
                }
            }

    3、如果抛出异常则有Error事件处理,在文本框上的toolTip属性中显示提示信息。

            private void Grid_Error(object sender, ValidationErrorEventArgs e)
            {
                if (Validation.GetErrors(txt).Count() > 0)
                {
                    txt.ToolTip = Validation.GetErrors(txt)[0].ErrorContent.ToString();
                }
                else
                    txt.ToolTip = null;
            }
  • 相关阅读:
    HDU 2602 Bone Collector (01背包)
    POJ 3624 Charm Bracelet (01背包)
    人见人爱A^B
    算菜价 HDU_2090
    Stride Convolution
    PaddingValid convolutionsSame convolutions
    Latex修改局部字体大小
    端到端的深度学习
    多任务学习(multi-task learning)
    迁移学习(Transfer learning)
  • 原文地址:https://www.cnblogs.com/lunawzh/p/5985420.html
Copyright © 2011-2022 走看看