У меня есть datePicker, свойство Text которого я привязался к модели представления.WPF + DatePicker + UpdateSourceTrigger = Явный
Вместо того, чтобы использовать UpdateSourceTrigger как свойствоChanged, я использую Explicit. В событии KeyDown я вызываю метод binding.UpdateSource().
Проблема, с которой я столкнулся, когда я ввожу значение 30/10/1983 в текстовое поле, в модели представления, я получаю только значение 30/10/198. Я не получаю последний введенный номер, если только я не потерял фокус или табу.
В момент ввода первого значения 3 свойство модели представления получает уведомление как NULL.
Должен ли я подписаться на какое-либо другое мероприятие?
Есть ли что-то не то, что я делаю, может кто-то помочь.
Кроме того, я использую свойство string в viewmodel вместо DateTime? это правильный подход или нет?
Благодаря
Что вы делаете в событии KeyDown, которое требует, чтобы вы обновили источник явно? Проблема в том, что событие KeyDown вызывается до того, как значение DatePicker обновлено, но я не могу найти никаких событий, которые возникают после. – Sjeijoet
@hantoun я тоже не нахожу такого события. Мне нужен datepicker, чтобы принять ввод пользователя в виде dd/mm/yyyy. эта запись не вызывает обратную привязку к модели представления. но ввод даты в формате mm/dd/yyyy вызывает ответную запись. – Sandepku
Возможно [этот вопрос] (http://stackoverflow.com/questions/3819832/changing-the-string-format-of-the-wpf-datepicker) может помочь вам найти решение, которое вы искали. Я бы попытался установить правильную «CultureInfo» вместо того, чтобы возиться со статическими форматами, если бы я был вами. В любом случае, это позволит вам привязываться к источникам DateTime. – Sjeijoet