Completed
Last Updated: 21 May 2015 13:36 by ADMIN
ADMIN
Dess | Tech Support Engineer, Principal
Created on: 18 Dec 2014 08:13
Category: Calendar
Type: Bug Report
1
FIX. RadCalendar - column/row selectors does not perform selection for the beginning of the allowed range
To reproduce: use the following code snippet:

public Form1()
{
    InitializeComponent();

    this.radCalendar1.AllowMultipleView = true;
    this.radCalendar1.MultiViewRows = 3;
    this.radCalendar1.MultiViewColumns = 4;
    this.radCalendar1.AllowMultipleSelect = true;
    this.radCalendar1.ShowRowHeaders = true;
    this.radCalendar1.ShowColumnHeaders = true;
    this.radCalendar1.AllowColumnHeaderSelectors = true;
    this.radCalendar1.AllowRowHeaderSelectors = true;
    this.radCalendar1.ShowViewSelector = true;
    this.radCalendar1.AllowViewSelector = true;

  
    this.radCalendar1.RangeMinDate = new DateTime(2014, 3, 3);
    this.radCalendar1.RangeMaxDate = new DateTime(2014, 7, 27);
    this.radCalendar1.FocusedDate = new DateTime(2014, 5, 5);
}

Please refer to the attached gif file.

Workaround: 
private void Calendar_MouseDown(object sender, MouseEventArgs e)
{
    CalendarCellElement cell = this.radCalendar1.CalendarElement.ElementTree.GetElementAtPoint(e.Location) as CalendarCellElement;
    if (cell != null && cell.Date < this.radCalendar1.RangeMinDate && (bool)cell.GetValue(CalendarCellElement.IsHeaderCellProperty) == true)
    {
        foreach (MonthViewElement monthView in this.radCalendar1.CalendarElement.CalendarVisualElement.Children[0].Children.Last().Children)
        {
            {
                foreach (CalendarCellElement monthCell in monthView.TableElement.Children)
                {
                    if (monthCell.Date.Month == cell.Date.Month && monthCell.Date.Year == cell.Date.Year &&
                        this.radCalendar1.RangeMinDate <= monthCell.Date)// &&
                       // (bool)cell.GetValue(CalendarCellElement.IsHeaderCellProperty) == false)
                    {
                        if (char.IsLetter(cell.Text[0]))
                        {
                            //perform column selection
                            if (monthCell.ControlBoundingRectangle.X == cell.ControlBoundingRectangle.X)
                            {
                                this.radCalendar1.SelectedDates.Add(monthCell.Date);
                            }
                        }
                        else
                        {
                            //perform row selection
                            if (monthCell.ControlBoundingRectangle.Y == cell.ControlBoundingRectangle.Y)
                            {
                                this.radCalendar1.SelectedDates.Add(monthCell.Date);
                            }
                        }
                    }
                }
            }
        }
    }
}
Attached Files:
0 comments