コード例 #1
0
    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));
        }
    }
コード例 #2
0
    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);
    }