次のような 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 拡張キットの一部です)