private void ChangeSelection(SelectionTypes Selection)
        {
            BasicControl control;
            DateTime dateTo = DateTime.Now;
            //DateTime dateFrom = this.DateTimeControl.DateFrom;
            if (this.bkWith != null)
            {
                this.LookUpEditFrom.Width = (Int32)bkWith;
            }
            switch (Selection)
            {
                case SelectionTypes.None:
                    if (bkWith == null)
                        bkWith = this.LookUpEditFrom.Width;
                    this.LookUpEditFrom.Width = this.orginWith;
                    control = new BasicControl();
                    control.Visible = false;
                    break;
                case SelectionTypes.OneDate:
                    control = new DayControl(dateTo);
                    break;

                case SelectionTypes.OneMonth:
                    control = new PLMonthControl(dateTo);
                    break;

                case SelectionTypes.OneQuarter:
                    control = new PLQuarterControl(dateTo);
                    break;

                case SelectionTypes.OneYear:
                    control = new PLYearControl(dateTo);
                    break;

                case SelectionTypes.SixMonths:
                    control = new PLSixMonths(dateTo);
                    break;

                case SelectionTypes.FromQuarterToQuarter:
                    control = new PLFromToQuarter(dateTo.AddMonths(-9), dateTo);
                    break;

                case SelectionTypes.FromYearToYear:
                    control = new PLFromToYearDateTime(new DateTime(dateTo.Year - 1, 1, 1), new DateTime(dateTo.Year, 1, 1));
                    break;

                case SelectionTypes.FromDateToDate:
                    control = new PLFromToDay(dateTo.AddDays(-7), dateTo);
                    break;

                case SelectionTypes.FromMonthToMonth:
                    control = new PLFromToMonth(dateTo.AddMonths(-2), dateTo);
                    break;

                default:
                    control = new DayControl(dateTo);
                    break;
            }
            this.ShowControl(control);
        }
 public DayControlAddedEventArgs(DayControl dayControl)
 {
     DayControl = dayControl;
 }
 public DayControlTappedEventArgs(DayControl dayControl)
 {
     DayControl = dayControl;
 }
        public void MakeCalender(Grid CalenderGrid, int year, int month, Func <List <DateData>, DateTime, List <DateData> > ClickAction)
        {
            CalenderGrid.Children.Clear();
            m_DayControls.Clear();

            if (month < 4)
            {
                year++;
            }
            try
            {
                DateTime ThisMonth = new DateTime(year, month, 1);

                int YoubiIndex = (int)ThisMonth.DayOfWeek;
                int Row        = 0;
                int Col        = YoubiIndex;
                for (int i = 1; i <= DateTime.DaysInMonth(ThisMonth.Year, ThisMonth.Month); i++)
                {
                    DayControl dayControl = new DayControl();
                    dayControl.SetValue(Grid.RowProperty, Row);
                    dayControl.SetValue(Grid.ColumnProperty, Col++);
                    DateTime date = new DateTime(ThisMonth.Year, ThisMonth.Month, i);

                    dayControl.DayControlData.Add(m_DateDatas.Where(x => x.JIKANWARI.ToString("yyyyMMdd") == ThisMonth.Year.ToString() + ThisMonth.Month.ToString("D2") + i.ToString("D2")));
                    dayControl.ClickAction = new Action <List <DateData> >(x =>
                    {
                        var EditDatas = ClickAction(x, date);
                        if (EditDatas != null)
                        {
                            m_DateDatas.RemoveAll(d => d.JIKANWARI.ToString("yyyyMMdd") == date.Year.ToString() + date.Month.ToString("D2") + date.Day.ToString("D2"));

                            foreach (var EditData in EditDatas)
                            {
                                var a = m_DateDatas.Where(d => d.JIKANWARI == EditData.JIKANWARI && d.KOMA == EditData.KOMA).FirstOrDefault();
                                if (a == null)
                                {
                                    m_DateDatas.Add(EditData);
                                }
                            }
                            ///編集した1日データを更新
                            dayControl.Refresh();
                            ///月合計を更新
                            MakeMonthSum();
                            ///年合計を更新
                            MakeYearSum();
                        }
                    });


                    CalenderGrid.Children.Add(dayControl);

                    dayControl.DayControlData.Day = new DateTime(ThisMonth.Year, ThisMonth.Month, i);

                    m_DayControls.Add(dayControl);

                    if (Col > 6)
                    {
                        Col = 0;
                        Row++;
                    }
                }
                ///月合計を更新
                MakeMonthSum();
                ///年合計を更新
                MakeYearSum();
            }
            catch { }
        }