我有一个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 Extension Kit)
的一部分