一旦用户向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=''}"/>
有没有办法做到这一点?谢谢。