Как определить MouseDoubleClick на календаре BlackoutDates?
В моем приложении WPF/C# у меня есть Calendar
контроль, с диапазоном BlackoutDates
задавать. Я тоже хочу справиться MouseDoubleClick
события, но я не вижу, как определить, что пользователь дважды щелкнул по дате отключения - дата, возвращаемая обработчику событий, в этом случае является последней выбранной действительной (то есть, не отключенной датой) датой. Как я могу "игнорировать" двойной щелчок на этих BlackoutDates
?
РЕДАКТИРОВАТЬ:
XAML:
<Calendar MouseDoubleClick="Calendar_MouseDoubleClick"/>
Код позади:
private void Calendar_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (myCalendarBlackoutDatesCollection.Contains(/* what goes here? */))
{
return; // ignore doubleclick
}
// execution continues here
}
1 ответ
Решение
Вы могли бы справиться с MouseDoubleClick
каждого человека CalendarDayButton
определив CalendarDayButtonStyle
:
<Calendar x:Name="cal">
<Calendar.CalendarDayButtonStyle>
<Style TargetType="CalendarDayButton">
<EventSetter Event="MouseDoubleClick" Handler="cal_MouseDoubleClick" />
</Style>
</Calendar.CalendarDayButtonStyle>
</Calendar>
private void cal_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
System.Windows.Controls.Primitives.CalendarDayButton button = sender as System.Windows.Controls.Primitives.CalendarDayButton;
DateTime clickedDate = (DateTime)button.DataContext;
if (!cal.BlackoutDates.Contains(clickedDate))
{
MessageBox.Show("No blackout date was clicked!");
}
}