Esempio n. 1
0
 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);
         }
     }
 }
Esempio n. 2
0
        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);
            });
        }
Esempio n. 3
0
        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());
        }
Esempio n. 5
0
            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);
 }
Esempio n. 7
0
 public void Unwire(object obj)
 {
     _eventDesc.RemoveEventHandler(obj, _event);
 }