2013-11-13 1 views
0

У меня есть DateTimePicker следующим образом:Validate неверный ввод на 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)

+0

Что вы подразумеваете под «Пюре с клавиатурой»? – gleng

+0

Я уверен, что он означает нажимая кучу случайных букв. Я попробовал его в проекте WPF со стандартным элементом управления DatePicker, и дата сбрасывается на все, что было в данный момент в элементе управления. Является ли 'xctk: DateTimePicker' настраиваемый элемент управления? –

+0

Извините, да, я имею в виду набирать случайные символы; управление происходит отсюда: https://wpftoolkit.codeplex.com/wikipage?title=DateTimePicker&referringTitle=Documentation –

ответ

0

Если вам не нравится способ управления обрабатывает ошибки вы можете обрабатывать ошибки самостоятельно в подклассе, пример этого в моем старом вопросе Wpf Datepicker Input modification

 Смежные вопросы

  • Нет связанных вопросов^_^