Ejemplo n.º 1
0
        private static void AddToEventRoute(DependencyObject element, EventRoute route, RadRoutedEventArgs e)
        {
            CheckParameters(element, route, e);

            DependencyObjectType dependencyType = element.GetDependencyObjectType();
            if (dependencyType == null)
            {
                dependencyType = DependencyObjectType.FromSystemTypeInternal(element.GetType());
                element.SetDependencyObjectType(dependencyType);
            }

            for (RoutedEventHandlerInfoList list = GlobalEventManager.GetDTypedClassListeners(dependencyType, e.RoutedEvent); list != null; list = list.Next)
            {
                for (int i = 0; i < list.Handlers.Length; i++)
                {
                    route.Add(element, list.Handlers[i].Handler, list.Handlers[i].InvokeHandledEventsToo);
                }
            }

            EventHandlersStore eventHandlersStore = GetEventHandlersStore(element);
            if (eventHandlersStore != null)
            {
                List<RoutedEventHandlerInfo> list2 = eventHandlersStore[e.RoutedEvent];
                if (list2 != null)
                {
                    for (int j = 0; j < list2.Count; j++)
                    {
                        RoutedEventHandlerInfo info = list2[j];
                        route.Add(element, info.Handler, info.InvokeHandledEventsToo);
                    }
                }
            }
        }