private void OnMaxMinDateChanged(DateTime minDate, DateTime maxDate)
{
int count = VisibleDays.Count;
for (int i = 0; i < count; ++i)
{
VisibleDays[i].IsSelectable =
MonthCalendarHelper.IsWithinRange(VisibleDays[i].Date, minDate, maxDate);
}
//Update the selected dates if the new Max/MinDate value is within visible days
if (minDate > FirstVisibleDate || maxDate < LastVisibleDate)
{
SelectionChange.Begin();
bool succeeded = false;
try
{
foreach (DateTime dt in SelectedDates)
{
if (!MonthCalendarHelper.IsWithinRange(dt, minDate, maxDate))
{
SelectionChange.Unselect(dt);
}
}
SelectionChange.End(true, true);
succeeded = true;
}
finally
{
if (!succeeded)
{
SelectionChange.Cancel();
}
}
}
}