private void BindTarget(bool bind) { if (bind) { if (IsBinding) { if (propInfo != null && control != null) { EventHandler handler = new EventHandler(this.Target_PropertyChanged); propInfo.AddValueChanged(control, handler); } if (validateInfo != null) { CancelEventHandler handler = new CancelEventHandler(this.Target_Validate); validateInfo.AddEventHandler(control, handler); } } } else { if (propInfo != null && control != null) { EventHandler handler = new EventHandler(this.Target_PropertyChanged); propInfo.RemoveValueChanged(control, handler); } if (validateInfo != null) { CancelEventHandler handler = new CancelEventHandler(this.Target_Validate); validateInfo.RemoveEventHandler(control, handler); } } }
public EventProxyObservable(object source, EventDescriptor @event) { Contract.Requires(source != null); Contract.Requires(@event != null); #if WINDOWS_PHONE || PORT_45 var onEvent = GetType().GetTypeInfo().GetDeclaredMethod("OnEvent").CreateDelegate( @event.EventType, this); #else var onEvent = Delegate.CreateDelegate( @event.EventType, this, GetType().GetMethod("OnEvent")); #endif observable = Observable.FromEventPattern <EventHandler, EventArgs>( handler => handler.Invoke, handler => { Proxy += handler; @event.AddEventHandler(source, onEvent); }, handler => { Proxy -= handler; @event.RemoveEventHandler(source, onEvent); }); }
internal void SetDataSource(object new_data_source) { if (changed_event != null) { changed_event.RemoveEventHandler(data_source, property_value_changed_handler); } data_source = new_data_source; if (property_name != null) { prop_desc = TypeDescriptor.GetProperties(data_source).Find(property_name, true); if (prop_desc == null) { return; } changed_event = TypeDescriptor.GetEvents(data_source).Find(property_name + "Changed", false); if (changed_event != null) { property_value_changed_handler = new EventHandler(PropertyValueChanged); changed_event.AddEventHandler(data_source, property_value_changed_handler); } } }
public void RemoveAddedEventHandler() { var component = new DescriptorTestComponent(); Action eventHandler = () => Assert.True(false, "EventDescriptor failed to remove an event handler"); EventDescriptor eventDescriptor = TypeDescriptor.CreateEvent(component.GetType(), nameof(component.ActionEvent), typeof(Action)); eventDescriptor.AddEventHandler(component, eventHandler); eventDescriptor.RemoveEventHandler(component, eventHandler); // component.Event should now have no handler => raising it should throw a NullReferenceException Assert.Throws <NullReferenceException>(() => component.RaiseEvent()); }
internal void StopListening() { var target = _source.Target; if (target == null) { return; } _source.Target = null; _eventDescriptor.RemoveEventHandler(target, _handlerDelegate); }
public override void RemoveEventHandler(object component, Delegate value) { _ed.RemoveEventHandler(component, value); }
public void Unwire(object obj) { _eventDesc.RemoveEventHandler(obj, _event); }