Microsoft.Samples.KMoore.WPFSamples.DateControls.MonthCalendar.OnMaxMinDateChanged C# (CSharp) Method

OnMaxMinDateChanged() private method

Update the IsSelectable property of visible days and selected dates when max/min date has been changed
private OnMaxMinDateChanged ( System.DateTime minDate, System.DateTime maxDate ) : void
minDate System.DateTime new MinDate
maxDate System.DateTime new MaxDate
return void
        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();
                    }
                }
            }
        }