Esempio n. 1
0
        private static void OnMaxDateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FXMonthView mv = (FXMonthView)d;

            DateTime oldViewDate = mv.ViewDateTime;

            mv.CoerceValue(ViewDateTimeProperty);

            if (oldViewDate != mv.ViewDateTime)
            {
                mv.OnMaxMinDateChanged(mv.MinDate, (DateTime)e.NewValue);
            }
        }
Esempio n. 2
0
        private static object CoerceMaxDate(DependencyObject d, object value)
        {
            FXMonthView mv       = (FXMonthView)d;
            DateTime    newValue = (DateTime)value;

            DateTime min = mv.MinDate;

            if (newValue < min)
            {
                return(min);
            }

            return(value);
        }
Esempio n. 3
0
        /// <summary>
        /// Clear the event, and detach our current EditableTextBox from ComboBox
        /// </summary>
        private void DetachFromVisualTree()
        {
            if (MonthView != null)
            {
                CommandManager.RemovePreviewExecutedHandler(MonthView, OnMonthViewCommandPreviewExecuted);
                MonthView.SelectedDateTimeChanged -= OnMonthViewDateTimeSelectionChanged;
                MonthView = null;
            }

            if (ValuePresenter != null)
            {
                ValuePresenter.MouseLeftButtonDown -= OnValuePresenterDoubleClick;
            }
        }
Esempio n. 4
0
        private static void OnMinDateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FXMonthView mv = (FXMonthView)d;

            DateTime oldMaxDate  = mv.MaxDate;
            DateTime oldViewDate = mv.ViewDateTime;

            mv.CoerceValue(MaxDateProperty);
            mv.CoerceValue(ViewDateTimeProperty);

            if (CompareYearMonthDay(oldMaxDate, mv.MaxDate) == 0 && CompareYearMonth(oldViewDate, mv.ViewDateTime) == 0)
            {
                mv.OnMaxMinDateChanged((DateTime)e.NewValue, mv.MaxDate);
            }
        }
Esempio n. 5
0
        private static void OnSelectedDateTimeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FXMonthView mv       = (FXMonthView)d;
            DateTime?   newValue = (DateTime?)e.NewValue;
            DateTime?   oldValue = (DateTime?)e.OldValue;

            DateSelectionChangedEventArgs args = new DateSelectionChangedEventArgs(PreviewSelectedDateTimeChangedEvent);

            args.RemovedDates.Add(oldValue);
            args.AddedDates.Add(newValue);
            mv.RaisePreviewSelectedDateTimeChanged(args);

            if (!args.Handled)
            {
                args = new DateSelectionChangedEventArgs(SelectedDateTimeChangedEvent);
                args.RemovedDates.Add(oldValue);
                args.AddedDates.Add(newValue);
                mv.RaiseSelectedDateTimeChanged(args);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Detaches the EditableTextBox, MonthView from old child tree and attaches them to a new one
        /// </summary>
        private void AttachToVisualTree()
        {
            DetachFromVisualTree();

            MonthView      = GetTemplateChild(PART_MonthView) as FXMonthView;
            ValuePresenter = GetTemplateChild(PART_ValuePresenter) as TextBlock;

            if (MonthView != null)
            {
                CommandManager.AddPreviewExecutedHandler(MonthView, OnMonthViewCommandPreviewExecuted);
                MonthView.SelectedDateTimeChanged += OnMonthViewDateTimeSelectionChanged;
            }

            if (ValuePresenter != null)
            {
                ValuePresenter.MouseLeftButtonDown += OnValuePresenterDoubleClick;
            }

            RefreshDropDownButtonStyle();
        }
Esempio n. 7
0
        private static void OnViewDateTimeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FXMonthView mv       = (FXMonthView)d;
            DateTime    newValue = (DateTime)e.NewValue;
            DateTime    oldValue = (DateTime)e.OldValue;

            RoutedPropertyChangedEventArgs <DateTime> args = new RoutedPropertyChangedEventArgs <DateTime>(oldValue, newValue);

            args.RoutedEvent = PreviewViewDateTimeChangedEvent;
            mv.RaisePreviewViewDateTimeChanged(args);

            if (!args.Handled)
            {
                args             = new RoutedPropertyChangedEventArgs <DateTime>(oldValue, newValue);
                args.RoutedEvent = ViewDateTimeChangedEvent;
                mv.RaiseViewDateTimeChanged(args);

                if (!args.Handled)
                {
                    mv.RecreateDays();
                }
            }
        }