首页 文章

在TextBox中,“格式预期为DD / MM / YYYY”在WPF MVVM绑定UserInput中

提问于
浏览
0

我试图在文本框中以指定的格式输入有效日期 . 任何人都可以帮我验证在文本框中输入的日期是一个有效的日期,它是DD / MM / YYYY格式吗?

如果它不是用户输入的有效日期,则在按Tab键(从文本框中单击外部)后,应该说:错误输入日期 .

查看型号:

私人DateTime? _txtDateDeRec;

public DateTime? TxtDateDeRec
    {
        get
        {
            return this._txtDateDeRec;
        }
        set
        {
            this._txtDateDeRec = value;
            OnPropertyChanged("TxtDateDeRec");
        }
    }

XAML代码是:

TextBox x:Name =“txtDateDeRec”HorizontalAlignment =“Left”Height =“23”Margin =“555,65,0,0”TextWrapping =“Wrap”Text =“”VerticalAlignment =“Top”Width =“ 163"

1 回答

  • 0
    textBox1.Leave += new EventHandler((sender2, ee) => 
            {
                var textBox = (Control)sender2;
                var date = new DateTime();
                if(DateTime.TryParse(textBox.Text,out date))
                {
                    textBox.Text= String.Format("{0:dd/MM/yyyy}", date);
                }
                else
                {
                    textBox.Text = "date wrongly entered.";
                }
    
            });
    

    Update 1: Only format DD/MM/YYY

    textBox1.Leave += new EventHandler((sender2, ee) => 
                {
                    var textBox = (Control)sender2;
                    var date = new DateTime();
                    var testResult = DateTime.TryParse(textBox.Text, out date);
                    var dateToString = String.Format("{0:dd/MM/yyyy}", date);
                    if(testResult==true && textBox.Text.Trim() == dateToString)//Format is the same
                    {
    
                        textBox.Text =dateToString ;
                    }
    
                    else
                    {
                        textBox.Text = "date wrongly entered.";
                    }
    
                });
    

相关问题