private static void PropertyChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) { string attachString = dependencyPropertyChangedEventArgs.NewValue as string; if (!string.IsNullOrWhiteSpace(attachString)) { EventHandlerList handlerHelpers = new EventHandlerList(); string[] attachStrings = attachString.Split(';'); foreach (string s in attachStrings) { var trimString = s.Trim(); if (!string.IsNullOrEmpty(trimString)) { var newHandler = new EventHandlerInstance { Attach = trimString }; handlerHelpers.Add(newHandler); } } SetList(dependencyObject, handlerHelpers); } }
private static void ListChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) { EventHandlerList oldHandlerList = dependencyPropertyChangedEventArgs.OldValue as EventHandlerList; if (oldHandlerList != null) { foreach (EventHandlerInstance eventHandlerInstance in oldHandlerList) { eventHandlerInstance.Disconnect(); } } EventHandlerList newList = dependencyPropertyChangedEventArgs.NewValue as EventHandlerList; if (newList != null) { foreach (EventHandlerInstance eventHandlerInstance in newList) { eventHandlerInstance.Connect(dependencyObject); } } }
public static void SetList(DependencyObject obj, EventHandlerList value) { obj.SetValue(InternalListProperty, value); }