MonoTouch.Dialog.MonthGridView.BuildGrid C# (CSharp) Method

BuildGrid() public method

public BuildGrid ( ) : void
return void
        public void BuildGrid()
        {
            DateTime previousMonth;
            try {
                previousMonth = _currentMonth.AddMonths (-1);
            } catch {
                previousMonth = _currentMonth;
            }
            var daysInPreviousMonth = DateTime.DaysInMonth (previousMonth.Year, previousMonth.Month);
            var daysInMonth = DateTime.DaysInMonth (_currentMonth.Year, _currentMonth.Month);
            weekdayOfFirst = (int)_currentMonth.DayOfWeek;
            var lead = daysInPreviousMonth - (weekdayOfFirst - 1);

            // build last month's days
            for (int i = 1; i <= weekdayOfFirst; i++) {
                var viewDay = new DateTime (_currentMonth.Year, _currentMonth.Month, i);
                var dayView = new CalendarDayView { Frame = new RectangleF ((i - 1) * 46 - 1, 0, 47, 45), Text = lead.ToString (), Marked = _calendarMonthView.isDayMarker (viewDay) };
                AddSubview (dayView);
                _dayTiles.Add (dayView);
                lead++;
            }

            var position = weekdayOfFirst + 1;
            var line = 0;

            // current month
            for (int i = 1; i <= daysInMonth; i++) {
                var viewDay = new DateTime (_currentMonth.Year, _currentMonth.Month, i);
                var dayView = new CalendarDayView { Frame = new RectangleF ((position - 1) * 46 - 1, line * 44, 47, 45), Today = (_currentDay.Date == viewDay.Date), Text = i.ToString (), Active = true, Tag = i, Marked = _calendarMonthView.isDayMarker (viewDay), Selected = (SelectedDate.Day == i) };

                if (dayView.Selected)
                    SelectedDayView = dayView;

                AddSubview (dayView);
                _dayTiles.Add (dayView);

                position++;
                if (position > 7) {
                    position = 1;
                    line++;
                }
            }

            //next month
            if (position != 1) {
                int dayCounter = 1;
                for (int i = position; i < 8; i++) {
                    var viewDay = new DateTime (_currentMonth.Year, _currentMonth.Month, i);
                    var dayView = new CalendarDayView { Frame = new RectangleF ((i - 1) * 46 - 1, line * 44, 47, 45), Text = dayCounter.ToString (), Marked = _calendarMonthView.isDayMarker (viewDay) };
                    AddSubview (dayView);
                    _dayTiles.Add (dayView);
                    dayCounter++;
                }
            }

            Frame = new RectangleF (Frame.Location, new SizeF (Frame.Width, (line + 1) * 44));

            Lines = (position == 1 ? line - 1 : line);

            if (SelectedDayView != null)
                this.BringSubviewToFront (SelectedDayView);
        }

Usage Example

示例#1
0
        private MonthGridView CreateNewGrid(DateTime date)
        {
            var grid = new MonthGridView(this, date, CurrentDate);

            grid.BuildGrid();
            grid.Frame = new RectangleF(0, 0, 320, 400);
            return(grid);
        }
All Usage Examples Of MonoTouch.Dialog.MonthGridView::BuildGrid