示例#1
0
        private static PropertyChangedCallback CreateTemplatePropertyChangedCallback(ComboBoxPopupPlacement popupPlacement)
        {
            return(delegate(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {
                var popup = d as ComboBoxPopup;
                if (popup == null)
                {
                    return;
                }

                var template = e.NewValue as ControlTemplate;
                if (template == null)
                {
                    return;
                }

                if (popup.PopupPlacement == popupPlacement)
                {
                    popup.SetChildTemplateIfNeed(template);
                }
            });
        }
 private void UpdateChildTemplate(ComboBoxPopupPlacement placement)
 {
     switch (placement)
     {
         case ComboBoxPopupPlacement.Classic:
             SetChildTemplateIfNeed(ClassicContentTemplate);
             break;
         case ComboBoxPopupPlacement.Down:
             SetChildTemplateIfNeed(DownContentTemplate);
             break;
         case ComboBoxPopupPlacement.Up:
             SetChildTemplateIfNeed(UpContentTemplate);
             break;
     //                default:
     //                    throw new NotImplementedException($"Unexpected value {placement} of the {nameof(PopupPlacement)} property inside the {nameof(ComboBoxPopup)} control.");
     }
 }
        private static PropertyChangedCallback CreateTemplatePropertyChangedCallback(ComboBoxPopupPlacement popupPlacement)
        {
            return delegate (DependencyObject d, DependencyPropertyChangedEventArgs e)
            {
                var popup = d as ComboBoxPopup;
                if (popup == null) return;

                var template = e.NewValue as ControlTemplate;
                if (template == null) return;

                if (popup.PopupPlacement == popupPlacement)
                {
                    popup.SetChildTemplateIfNeed(template);
                }
            };
        }