internal static void AddDropHandler(DependencyObject element, CustomDragEventHandler handler, bool handledEventsToo) { if (element == null) { throw new ArgumentNullException("element"); } if (handler == null) { throw new ArgumentNullException("handler"); } CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> dropHandlers = element.GetDropHandlers(); CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> handlers2 = dropHandlers ?? new CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs>((h, a) => h(element, a)); handlers2.Add(handler, handledEventsToo); if (handlers2 != dropHandlers) { element.SetValue(DropHandlerProperty, handlers2); } }
internal static void RemoveDropHandler(DependencyObject element, CustomDragEventHandler handler) { if (element == null) { throw new ArgumentNullException("element"); } if (handler == null) { throw new ArgumentNullException("handler"); } CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> dropHandlers = element.GetDropHandlers(); if (dropHandlers != null) { dropHandlers.Remove(handler); } }
/// <summary> /// Adds a handler to the attached Drop 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 AddDropHandler(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.GetDropHandlers(); ExtendedRoutedEventHandlerCollection<DragEventHandler, DragEventArgs> handlers = originalHandlers ?? new ExtendedRoutedEventHandlerCollection<DragEventHandler, DragEventArgs>((h, a) => h(element, a)); handlers.Add(handler, handledEventsToo); if (handlers != originalHandlers) { element.SetValue(DropHandlerProperty, handlers); } }