internal static void AddDragOverHandler(DependencyObject element, CustomDragEventHandler handler, bool handledEventsToo) { if (element == null) { throw new ArgumentNullException("element"); } if (handler == null) { throw new ArgumentNullException("handler"); } CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> dragOverHandlers = element.GetDragOverHandlers(); CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> handlers2 = dragOverHandlers ?? new CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs>((h, a) => h(element, a)); handlers2.Add(handler, handledEventsToo); if (handlers2 != dragOverHandlers) { element.SetValue(DragOverHandlerProperty, handlers2); } }
internal static void RemoveDragOverHandler(DependencyObject element, CustomDragEventHandler handler) { if (element == null) { throw new ArgumentNullException("element"); } if (handler == null) { throw new ArgumentNullException("handler"); } CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> dragOverHandlers = element.GetDragOverHandlers(); if (dragOverHandlers != null) { dragOverHandlers.Remove(handler); } }
/// <summary> /// Adds a handler to the attached DragOver event. /// </summary> /// <param name="element">The DependencyObject to attach an event handler for.</param> /// <param name="handler">The event handler.</param> /// <param name="handledEventsToo">A value Indicating whether to invoke the handler if the event is handled.</param> internal static void AddDragOverHandler(DependencyObject element, DragEventHandler handler, bool handledEventsToo) { if (element == null) { throw new ArgumentNullException("element"); } if (handler == null) { throw new ArgumentNullException("handler"); } ExtendedRoutedEventHandlerCollection<DragEventHandler, DragEventArgs> originalHandlers = element.GetDragOverHandlers(); ExtendedRoutedEventHandlerCollection<DragEventHandler, DragEventArgs> handlers = originalHandlers ?? new ExtendedRoutedEventHandlerCollection<DragEventHandler, DragEventArgs>((h, a) => h(element, a)); handlers.Add(handler, handledEventsToo); if (handlers != originalHandlers) { element.SetValue(DragOverHandlerProperty, handlers); } }