用户在文本字段中输入内容时运行验证

用户名

如果我要在用户在文本字段中输入内容时(而不是在窗口弹出时)运行验证,该怎么办。这是示例图片:产品窗口文本框

在我执行此窗口的示例图像中,它会自动验证。当我输入内容时,我希望它检查验证。

这是验证中的代码片段:

public string Error
    {
        get { return null; }
    }

    public string this[string propertyName]
    {
        get
        {
            string error = string.Empty;
                switch (propertyName)
                {
                    case "Name":
                        if (string.IsNullOrEmpty(Name))
                            error = "Name is required!";
                        break;
                    case "Url":
                        if (string.IsNullOrEmpty(Url))
                            error = "Url is required!";
                        else if (!Regex.IsMatch(Url, @"(?:https?:\/\/)?(?:[\w]+\.)([a-zA-Z\.]{2,6})([\/\w\.-]*)*\/?"))
                            error = "Url is invalid";
                        break;
                    case "Price":
                        if (Price < 0)
                            error = "Price cannot be negative!";
                        break;
                    default:
                        break;
                }

            return error;
        }
    }

这是我的UI中的代码段:

 <!--Product Name-->
    <Label Content="Name:" />
    <TextBox x:Name="txtName" 
             Grid.Column="2"
             Validation.Error="ValidationError"
             Text="{Binding Name, 
                    Mode=TwoWay, 
                    ValidatesOnDataErrors=True,
                    NotifyOnValidationError=True,
                    UpdateSourceTrigger=PropertyChanged}" />
    <!--Product Url-->
    <Label Grid.Row="2" Content="Url:" />
    <TextBox x:Name="txtUrl" 
             Grid.Row="2" 
             Grid.Column="2"
             Validation.Error="ValidationError"
             Text="{Binding Url, 
                    Mode=TwoWay, 
                    ValidatesOnDataErrors=True,
                    NotifyOnValidationError=True,
                    UpdateSourceTrigger=PropertyChanged}"/>
Toadflakz

如果用“当我输入某物时”表示“每次我按一个键”,则将BindingUpdateSourceTrigger更改PropertyChanged为TextBox上的。这意味着,每当更改TextBox的值时,它将自动更新绑定的对象并触发IDataErrorInfo接口调用以更新的状态TextBox

更新:

您需要实现INotifyPropertyChanged接口以允许IDataErrorInfo其正常运行。

public class MyObject : INotifyPropertyChanged, IDataErrorInfo
{

 public event PropertyChangedEventHandler PropertyChanged;

 private string _myValue;
 public string MyValue
 {
   get { return _myValue; }
   set 
   {
     _myValue = value;
     OnPropertyChanged("MyValue");
   }
 }

 private void OnPropertyChanged(string propertyName)
 {
     var handler = PropertyChanged;
     if (handler != null)
     PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
 }

 public string Error
    {
        get { return null; }
    }

    public string this[string columnName]
    {
        get
        {
            string returnValue = null;
            switch (columnName)
            {
                case "MyValue":
                   if MyValue != "expected"
                      returnValue = "MyValue is not expected";
            }
            return returnValue;
         }
    }

}

注意: IDataErrorInfoMyValue在更新通知到UI后才检索时调用(因此get实现,而不是set在索引器中)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在文本字段中输入内容时更新/运行代码[Swift / iOS]

来自分类Dev

SwiftUI验证文本字段中的输入

来自分类Dev

验证GUI中的文本字段输入

来自分类Dev

JSF中的输入文本字段验证

来自分类Dev

如何验证文本字段中的用户输入以将其与变量进行比较?

来自分类Dev

当用户按下按钮时,如何撤消用户在文本字段中输入的最后一项内容?

来自分类Dev

限制用户在文本字段中输入以确认为模式

来自分类Dev

阻止用户仅在文本字段中输入空格?

来自分类Dev

首先从文件中输入内容,然后从用户输入中运行交互式REPL

来自分类Dev

如何在用户在文本输入中输入内容时过滤DIV

来自分类Dev

验证文本字段输入数组

来自分类Dev

除非在文本字段中输入了内容,否则用户无法按下按钮

来自分类Dev

在Angular 2中快速键入内容时,带有验证的输入字段会崩溃

来自分类Dev

在Angular 2中快速键入内容时,带有验证的输入字段会崩溃

来自分类Dev

ipyvuetify用户输入文本字段

来自分类Dev

从文本字段存储用户输入

来自分类Dev

当用户不输入内容时,我想在表单验证中显示错误消息

来自分类Dev

想要通过在用户输入错误时阻止用户在文本字段中输入任何空格

来自分类Dev

想要通过在用户输入错误时阻止用户在文本字段中输入任何空格

来自分类Dev

当用户使用jQuery完成输入或退出文本字段时,如何从文本字段中获取价值?

来自分类Dev

在另一个文本字段中键入内容时启用文本字段

来自分类Dev

验证对象中的文本字段

来自分类Dev

在iOS中验证文本字段

来自分类Dev

文本字段中的jquery验证

来自分类Dev

验证文本字段

来自分类Dev

从 uiAlertController 中的文本字段检索内容

来自分类Dev

跟随用户输入值在文本字段中添加默认文本

来自分类Dev

当用户更改文本字段时,ipyvuetify捕获文本字段的用户输入值

来自分类Dev

从文本字段输入中过滤JList

Related 相关文章

  1. 1

    在文本字段中输入内容时更新/运行代码[Swift / iOS]

  2. 2

    SwiftUI验证文本字段中的输入

  3. 3

    验证GUI中的文本字段输入

  4. 4

    JSF中的输入文本字段验证

  5. 5

    如何验证文本字段中的用户输入以将其与变量进行比较?

  6. 6

    当用户按下按钮时,如何撤消用户在文本字段中输入的最后一项内容?

  7. 7

    限制用户在文本字段中输入以确认为模式

  8. 8

    阻止用户仅在文本字段中输入空格?

  9. 9

    首先从文件中输入内容,然后从用户输入中运行交互式REPL

  10. 10

    如何在用户在文本输入中输入内容时过滤DIV

  11. 11

    验证文本字段输入数组

  12. 12

    除非在文本字段中输入了内容,否则用户无法按下按钮

  13. 13

    在Angular 2中快速键入内容时,带有验证的输入字段会崩溃

  14. 14

    在Angular 2中快速键入内容时,带有验证的输入字段会崩溃

  15. 15

    ipyvuetify用户输入文本字段

  16. 16

    从文本字段存储用户输入

  17. 17

    当用户不输入内容时,我想在表单验证中显示错误消息

  18. 18

    想要通过在用户输入错误时阻止用户在文本字段中输入任何空格

  19. 19

    想要通过在用户输入错误时阻止用户在文本字段中输入任何空格

  20. 20

    当用户使用jQuery完成输入或退出文本字段时,如何从文本字段中获取价值?

  21. 21

    在另一个文本字段中键入内容时启用文本字段

  22. 22

    验证对象中的文本字段

  23. 23

    在iOS中验证文本字段

  24. 24

    文本字段中的jquery验证

  25. 25

    验证文本字段

  26. 26

    从 uiAlertController 中的文本字段检索内容

  27. 27

    跟随用户输入值在文本字段中添加默认文本

  28. 28

    当用户更改文本字段时,ipyvuetify捕获文本字段的用户输入值

  29. 29

    从文本字段输入中过滤JList

热门标签

归档