예제 #1
0
 private void UpdateContainerSelection()
 {
     if (SelectedDateTime.HasValue)
     {
         CalendarDay day = GetCalendarDateByDate(SelectedDateTime.Value);
         if (day != null && container != null)
         {
             container.SelectedValue = day;
         }
     }
 }
예제 #2
0
        public FXMonthViewItem GetMonthViewItemFromDate(DateTime date)
        {
            CalendarDay day = GetCalendarDateByDate(date);

            if (day != null && container != null)
            {
                return(container.ItemContainerGenerator.ContainerFromItem(day) as FXMonthViewItem);
            }

            return(null);
        }
예제 #3
0
 internal void InternalUpdate(CalendarDay cdate)
 {
     Date = cdate.Date;
     IsOtherMonth = cdate.IsOtherMonth;
     IsSelectable = cdate.IsSelectable;
 }
예제 #4
0
        private CalendarDayCollection CreateVisibleDaysCollection()
        {
            var collection     = new CalendarDayCollection();
            var NumberOfDays   = CultureHelper.CurrentCalendar.GetDaysInMonth(ViewYear, ViewMonth);
            var dtStartOfMonth = new DateTime(ViewYear, ViewMonth, 1, 0, 0, 0, CultureHelper.CurrentCalendar);

            int TotalDays = 0;
            int FirstDay  = CultureHelper.GetDayOfWeek(dtStartOfMonth, CultureHelper.CurrentCalendar);

            int LastMonth = ViewMonth;
            int LastYear  = ViewYear;

            if (ViewMonth - 1 < 1 && LastYear > 1)
            {
                LastMonth = 12;
                LastYear--;
            }
            else if (ViewMonth - 1 > 0)
            {
                LastMonth--;
            }

            int PrevMonthDays = CultureHelper.CurrentCalendar.GetDaysInMonth(LastYear, LastMonth);
            int LastingDays   = PrevMonthDays - FirstDay;

            //Create Pre-Day paddings
            for (int i = LastingDays; i < PrevMonthDays; i++)
            {
                var newDay = new CalendarDay(new DateTime(LastYear, LastMonth, i + 1, 0, 0, 0, CultureHelper.CurrentCalendar));
                newDay.IsOtherMonth = true;
                newDay.IsSelectable = false;
                collection.Add(newDay);

                TotalDays++;
            }

            //Create CurrentMonth Days
            for (int i = 1; i <= NumberOfDays; i++)
            {
                var newDay = new CalendarDay(new DateTime(ViewYear, ViewMonth, i, 0, 0, 0, CultureHelper.CurrentCalendar));
                newDay.IsOtherMonth = false;
                newDay.IsSelectable = true;

                collection.Add(newDay);
                TotalDays++;
            }

            int EndDay;

            if (FirstDay != 0)
            {
                EndDay = NumberOfDays + 1;
            }
            else
            {
                EndDay = NumberOfDays;
            }

            //Create Post-Padding Days
            for (int i = EndDay; i < 42; i++)
            {
                if (TotalDays == 42)
                {
                    break;
                }

                var newDay = new CalendarDay(new DateTime(ViewYear, ViewMonth, i - EndDay + 1, 0, 0, 0, CultureHelper.CurrentCalendar));

                newDay.IsOtherMonth = true;
                newDay.IsSelectable = false;

                collection.Add(newDay);
            }

            return(collection);
        }
예제 #5
0
 internal void InternalUpdate(CalendarDay cdate)
 {
     Date         = cdate.Date;
     IsOtherMonth = cdate.IsOtherMonth;
     IsSelectable = cdate.IsSelectable;
 }
예제 #6
0
        private CalendarDayCollection CreateVisibleDaysCollection()
        {
            var collection = new CalendarDayCollection();
            var NumberOfDays = CultureHelper.CurrentCalendar.GetDaysInMonth(ViewYear, ViewMonth);
            var dtStartOfMonth = new DateTime(ViewYear, ViewMonth, 1, 0, 0, 0, CultureHelper.CurrentCalendar);

            int TotalDays = 0;
            int FirstDay = CultureHelper.GetDayOfWeek(dtStartOfMonth, CultureHelper.CurrentCalendar);

            int LastMonth = ViewMonth;
            int LastYear = ViewYear;

            if (ViewMonth - 1 < 1 && LastYear > 1)
            {
                LastMonth = 12;
                LastYear--;
            }
            else if(ViewMonth - 1 > 0)
            {
                LastMonth--;
            }

            int PrevMonthDays = CultureHelper.CurrentCalendar.GetDaysInMonth(LastYear, LastMonth);
            int LastingDays = PrevMonthDays - FirstDay;

            //Create Pre-Day paddings
            for(int i=LastingDays; i<PrevMonthDays; i++)
            {
                var newDay = new CalendarDay(new DateTime(LastYear, LastMonth, i + 1, 0, 0, 0, CultureHelper.CurrentCalendar));
                newDay.IsOtherMonth = true;
                newDay.IsSelectable = false;
                collection.Add(newDay);

                TotalDays++;
            }

            //Create CurrentMonth Days
            for(int i=1; i<= NumberOfDays; i++)
            {
                var newDay = new CalendarDay(new DateTime(ViewYear, ViewMonth, i, 0, 0, 0, CultureHelper.CurrentCalendar));
                newDay.IsOtherMonth = false;
                newDay.IsSelectable = true;

                collection.Add(newDay);
                TotalDays++;
            }

            int EndDay;
            if(FirstDay != 0)
            {
                EndDay = NumberOfDays + 1;
            }
            else
            {
                EndDay = NumberOfDays;
            }

            //Create Post-Padding Days
            for(int i=EndDay; i<42; i++)
            {
                if(TotalDays == 42)
                    break;

                var newDay = new CalendarDay(new DateTime(ViewYear, ViewMonth, i - EndDay + 1, 0, 0, 0, CultureHelper.CurrentCalendar));

                newDay.IsOtherMonth = true;
                newDay.IsSelectable = false;

                collection.Add(newDay);
            }

            return collection;
        }