我有一个 DateTimePicker 如下:
<UserControl
...
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
...
>
<xctk:DateTimePicker Name="MyDatePicker"
Value="{Binding MyDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
Format="Custom" FormatString="dd/MM/yyyy HH:mm:ss"
AutoCloseCalendar="True"/>
我正在使用IDateErrorInfo
我的数据模型来处理业务逻辑错误;例如:
public class MyViewModel : IDataErrorInfo
{
public string Error
{
get { return null; }
}
public string this[string columnName]
{
get
{
string error = DataValid();
CanExecute = (error == string.Empty);
return error;
}
}
CanExecute
是一个管理用户是否可以选择提交数据的属性。这一切都很好,但是,如果我只是选择日期并敲击键盘(键入随机字母),日期将重置为01/01/01
. 我想要发生的是日期有效地保持不变(也就是说,就像我捣碎键盘之前一样)。但是,我似乎找不到一个地方来处理这种情况发生时显然会发生的转换错误。
我怎么能抓住这个?
(DateTimePicker 控件是WPF 扩展工具包的一部分)