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