public static void Clear(object source, string sourceProp, object target, string targetProp) { string sourceEvent = sourceProp + "Changed"; string targetEvent = targetProp + "Changed"; Type sourceType = source.GetType(); Type targetType = target.GetType(); EventInfo ei1 = sourceType.GetEvent(sourceEvent); EventInfo ei2 = targetType.GetEvent(targetEvent); BindingController bh = Find(source, sourceProp, target, targetProp); _instances.Remove(bh); ei1.RemoveEventHandler(source, new EventHandler(bh.SourceChanged)); ei2.RemoveEventHandler(target, new EventHandler(bh.TargetChanged)); }
public static void Bind(object source, string sourceProp, object target, string targetProp) { string sourceEvent = sourceProp + "Changed"; string targetEvent = targetProp + "Changed"; Type sourceType = source.GetType(); Type targetType = target.GetType(); EventInfo ei1 = sourceType.GetEvent(sourceEvent); EventInfo ei2 = targetType.GetEvent(targetEvent); BindingController bh = new BindingController(source, sourceProp, target, targetProp); _instances.Add(bh); ei1.AddEventHandler(source, new EventHandler(bh.SourceChanged)); ei2.AddEventHandler(target, new EventHandler(bh.TargetChanged)); bh.TargetChanged(bh, EventArgs.Empty); }