У меня есть следующие DatePicker:событие изменения значения WPF работает до того изменилось значение
<xctk:DateTimePicker HorizontalAlignment="Right" Margin="0,23,671,0" Name="datepicker" VerticalAlignment="Top" Width="120" Height="49" BorderBrush="Black" Cursor="Hand" ValueChanged="dateTimePicker1_ValueChanged" />
Теперь, как вы можете видеть компонент имеет событие ValueChanged. Код события выглядит следующим образом:
private void dateTimePicker1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
DateTime date = (DateTime)datepicker.Value;
datepicker.Text = date.Date.ToString();
UpdateDateLabels(date);
}
private void UpdateDateLabels(DateTime date)
{
dstart.Content = date.Date.ToShortDateString();
switch (datebox.SelectedIndex)
{
case 0:
date.AddDays(1);
break;
case 1:
date = date.AddDays(7);
break;
case 2:
date = date.AddMonths(1);
break;
case 3:
date = date.AddYears(1);
break;
default:
break;
}
MessageBox.Show(datebox.SelectedValue.ToString());
dend.Content = date.Date.ToShortDateString();
}
Теперь, как некоторые из вас могут знать DatePicker выглядит следующим образом:
Теперь, когда я нажимаю клавиши со стрелками (вверх и вниз) все работает как это должно. Но если я, однако нажмите на кнопку, чтобы просмотреть календарь, то changedevent уже уволен без фактического изменения (я даже не получить, чтобы увидеть календарь, прежде чем я получаю следующее сообщение об ошибке):
Может кто-нибудь скажи мне, почему это происходит?