public void CreateAllDays() { try { var items = new List <CalendarDayBoxView>(); for (uint m = 1; m <= 12; m++) { DayOfWeek StartDayOfWeek = MyDate.GetDayOfWeekForShamsiCalendar(Year, (int)m, 1); int Column = MyDate.GetDayOfWeek(StartDayOfWeek); int Row = 0; int TotalDays = MyDate.GetDaysCountOfMonth(Year, (int)m); for (uint i = 1; i <= TotalDays; i++) { var dayBox = new CalendarDayBoxView(new CalendarDayBoxViewModel() { Day = i, Month = m, CalendarTextColor = CalendarTextColor, CalendarSelectedTextColor = CalendarSelectedTextColor, CalendarHighlightColor = CalendarHighlightColor, }) { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand }; dayBox.SetValue(Grid.ColumnProperty, Column + 1); dayBox.SetValue(Grid.RowProperty, Row); items.Add(dayBox); Column++; if (Column > 6) { Column = 0; Row++; } } } AllDays = items; var temp = AllDays.FirstOrDefault(d => d.DataContext.Day == ShamsiSelectedDate.Day && d.DataContext.Month == ShamsiSelectedDate.Month); if (temp == null) { temp = AllDays.FirstOrDefault(d => d.DataContext.Day == 29 && d.DataContext.Month == ShamsiSelectedDate.Month); } temp.DataContext.Select(); } catch (Exception ex) { throw new Exception(ex.Message); } }