コード例 #1
0
        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);
            }
        }