- Когда окно открыто загружается
- При изменении даты в DatePicker.
public void LoadData()
{
date_DatePicker.SelectedDate = DateTime.Today;
Do_Something();
}
private void DatePicker_DateChanged(object sender, SelectionChangedEventArgs e)
{
if (date_DatePicker.SelectedDate.HasValue)
{
Do_Something();
}
}
... но вы видите проблему: поскольку загрузка окна вызвала заполнение даты в DatePicker, это запускает Do_Something(), вызывая двойной запуск этого метода.
Я думал отключить это, проверив e.OriginalSource, но, видимо, там тоже дата уже заполнена (я был надеясь (DatePicker)(e.OriginalSource).SelectedDate иметь значение null).
Есть ли способ сказать что-то вроде:
public void LoadData()
{
disable_Events();
date_DatePicker.SelectedDate = DateTime.Today;
re-enable_Events();
Do_Something();
}
или:
private void DatePicker_DateChanged(object sender, SelectionChangedEventArgs e)
{
if ((date_DatePicker.SelectedDate.HasValue) &&
!(previous_value_was_empty(sender,e))) //
Подробнее здесь: https://stackoverflow.com/questions/778 ... f-solution
Мобильная версия