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); } }; }