private static void OnTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { DataTemplate dt = (DataTemplate)e.NewValue; if (dt != null) { dt.Seal(); RoutedEventTrigger ih = (RoutedEventTrigger)dt.LoadContent(); (d as FrameworkElement).AddHandler(ih.RoutedEvent, new RoutedEventHandler(ih.OnRoutedEvent)); } }
private RoutedEventTrigger CreateRoutedEventTrigger(DependencyObject target, string routedEvent) { var routedEvents = EventManager.GetRoutedEvents().ToDictionary(r => $"{r.OwnerType.Name}.{r.Name}"); if (routedEvents.ContainsKey(routedEvent)) { var trigger = new RoutedEventTrigger { RoutedEvent = routedEvents[routedEvent] }; trigger.Attach(target); return(trigger); } return(null); }