Example #1
0
        /// <summary>
        /// IsDropDownOpenProperty property changed handler.
        /// </summary>
        /// <param name="d">DatePicker that changed its IsDropDownOpen.</param>
        /// <param name="e">DependencyPropertyChangedEventArgs.</param>
        private static void OnIsDropDownOpenChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            DatePicker datePicker = d as DatePicker;

            Debug.Assert(datePicker != null);
            bool newValue = (bool)e.NewValue;
            bool oldValue = (bool)e.OldValue;

            if (datePicker._popUp != null && datePicker._popUp.Child != null)
            {
                if (newValue != oldValue)
                {
                    if (datePicker._calendar.DisplayMode != CalendarMode.Month)
                    {
                        datePicker._calendar.DisplayMode = CalendarMode.Month;
                    }

                    if (newValue)
                    {
                        datePicker.OpenDropDown();
                    }
                    else
                    {
                        Debug.Assert(!newValue);
                        datePicker._popUp.IsOpen = false;
                        datePicker.OnCalendarClosed(new RoutedEventArgs());
                    }
                }
            }
        }