0

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

4

1 に答える 1

0

コントロールがエラーを処理する方法が気に入らない場合は、サブクラスで自分でエラーを処理できます。この例は、私の古い質問Wpf Datepicker Input Modificationにあります。

于 2013-11-13T16:09:38.353 に答える