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);
}
}
}
}
}
}
}
}