WPF DateTimePicker не устанавливает дату после проверки - PullRequest
1 голос
/ 09 марта 2011

Я пытаюсь проверить выбранную дату в элементе выбора даты и времени и установить ее на сегодняшнюю дату, если выбрана дата> Datetime.Today. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу установить SelectedDateсвойство элемента управления datetimepicker через xaml. Я чувствую, что что-то не так с моей привязкой, пожалуйста, вы можете помочь?

Ниже приведен код. Пожалуйста, скажите, что я делаю неправильно?*

// Это не отражается в любое время в свойстве SelectedDate элемента управления, почему ???значение = DateTime.Today;} bindingDate = значение;OnPropertyChanged ( "BindingDate");}}

.. и да, я устанавливаю текст данных окна следующим образом:

public Window1()
        {
            InitializeComponent();
            this.DataContext = new Context(); 
        }

Любые предложения будут высоко оценены.

Спасибо, -Mike

Ответы [ 2 ]

1 голос
/ 09 марта 2011

Это потому, что установщик BindingDate никогда не будет вызываться, если вы установите значение для локальной переменной bindingDate и ваш пользовательский интерфейс никогда не будет уведомлен.

Вместо настройки

private DateTime bindingDate = DateTime.Today.AddDays(13);

попробуйте установить

 BindingDate = DateTime.Today.AddDays(13);

EDIT

Но выбор будущей даты в средстве выбора даты останется даже после отображения окна сообщения, поскольку выбор уже сделан в элементе управления и не будет сброшен обратно.

Но вы можете рассмотреть другие альтернативы, такие как блокирование всех будущих дат от выбора, используя BlackoutDates или DisplayDates средства выбора даты, или вы можете рассмотреть возможность использования пользовательских правил проверки, как указано в ниже сообщения

Подтверждение выбора даты WPF

0 голосов
/ 05 декабря 2013

Вы можете рассмотреть возможность реализации INotifyPropertyChanging, а не только INotifyPropertyChanged.Таким образом, вы также можете уведомить, что ваша собственность скоро изменится, и запустить соответствующий код.И, конечно же, сообщите, что ваша собственность фактически изменилась.

...