以正确的日期格式输入文本时,WPF DatePicker验证

时间:2018-10-19 03:27:28

标签: wpf

一旦用户向DatePicker输入文本(而不是通过DatePicker选择日期时),我就无法启动验证。我希望它仅在文本采用日期格式(例如“ MM / dd / yyyy”)时才触发验证,但是当使用Text属性和UpdateSourceTrigger = PropertyChanged时,它将在每次文本输入时触发验证。输入。我还将绑定SomeDate设置为DateTime。有没有一种方法可以更改我的字符串绑定?

<DatePicker x:Name = "date" 
        Text = "{Binding SomeDate, Mode=TwoWay,    
        UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, 
        TargetNullValue=''}"/>

我也尝试使用SelectedDate属性代替Text,但这仅在按Enter输入文本输入日期或通过DatePicker UI选择日期时才触发验证。我了解为什么所有这些事情都在发生,但无法想到解决方案。

我还尝试了Text属性和UpdateSourceTrigger = Explicit,但查看可以触发的事件,它们似乎无济于事。我尝试使用PreviewTextInput,但由于无法输入新文本而无法使用。 DatePicker也没有TextChanged事件属性。

<DatePicker x:Name = "date" PreviewTextInput = "onInput"
        Text = "{Binding SomeDate, Mode=TwoWay,  
        UpdateSourceTrigger=Explicit, ValidatesOnDataErrors=True, 
        TargetNullValue=''}"/>

有没有办法做到这一点?谢谢。

0 个答案:

没有答案