コード例 #1
0
        private void UpdateCalendar()
        {
            Debug.WriteLine("Start UpdateCalendar()");

            var rowNum = CalendarUtils.CalcRowSize(_year, _month);

            var calendarDateRowHeight = (Height * 0.8) / rowNum;
            var rowCollections        = new RowDefinitionCollection();

            rowCollections.Add(calendarGrid.RowDefinitions[0]);
            for (var i = 0; i < rowNum; i++)
            {
                rowCollections.Add(new RowDefinition {
                    Height = calendarDateRowHeight
                });
            }

            calendarGrid.RowDefinitions = rowCollections;

            var prevMonthDay = CalendarUtils.CalcPrevMonthDays(_year, _month);

            Debug.WriteLine("既存のカレンダー削除");
            calendarGrid.Children.Clear();

            Debug.WriteLine("カレンダー作成");
            InitCalendarHeader();
            for (var i = 0; i < rowNum; i++)
            {
                for (var j = 1; j <= 7; j++)
                {
                    var idx      = (i * 7) + j;
                    var dateTime = CalendarUtils.CalcDate(_year, _month, prevMonthDay, idx);
                    var cell     = new Cell(dateTime.Year, dateTime.Month, dateTime.Day)
                    {
                        Index = idx - 1
                    };

                    if (dateTime.Year == _year && dateTime.Month == _month)
                    {
                        cell.BackgroundColor = Color.White;
                    }
                    else
                    {
                        cell.BackgroundColor = Color.Gray;
                    }
                    Debug.WriteLine("{0}-{1}-{2}", dateTime.Year, dateTime.Month, dateTime.Day);
                    calendarGrid.Children.Add(cell, j - 1, i + 1);
                }
            }

            var pickerDateTime = new DateTime(_year, _month, 1);

            thisMonth.Text = $"{pickerDateTime.Year}年{pickerDateTime.Month}月";

            Debug.WriteLine("End UpdateCalendar()");
        }