Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bubbling up events .

I have multiple layers in an application and i find myself having to bubble up events to the GUI layer for doing status bar changes, etc . . I find myself having to write repeated coded where each layer simply subscribes to events from the lower layer and then in the call back simply raise an event up the chain. Is there a more efficient way of doing this?

like image 820
leora Avatar asked Oct 20 '08 00:10

leora


People also ask

What is meant by event bubbling?

Event bubbling is a type of event propagation where the event first triggers on the innermost target element, and then successively triggers on the ancestors (parents) of the target element in the same nesting hierarchy till it reaches the outermost DOM element or document object (Provided the handler is initialized).

How do you bubble an event?

Event bubbling is a method of event propagation in the HTML DOM API when an event is in an element inside another element, and both elements have registered a handle to that event. It is a process that starts with the element that triggered the event and then bubbles up to the containing elements in the hierarchy.

Do events bubble up or down?

A bubbling event goes from the target element straight up. Normally it goes upwards till <html> , and then to document object, and some events even reach window , calling all handlers on the path.

What do you mean by event bubbling and event capturing?

With bubbling, the event is first captured and handled by the innermost element and then propagated to outer elements. With capturing, the event is first captured by the outermost element and propagated to the inner elements.


Video Answer


1 Answers

If all you're doing is firing an event handler from another event handler, you can cut out the middle man and hook the event handlers directly in the add/remove blocks for the event.

For example, if you have a UserControl with a "SaveButtonClick" event, and all you want to do when is call the event handler when the "SaveButton" on your UserControl is clicked, you can do this:

public event EventHandler SaveButtonClick {     add { this.SaveButton.Click += value; }     remove { this.SaveButton.Click -= value; } } 

Now you don't need any code to fire the SaveButtonClick event - it will automatically be fired when the SaveButton.Click event is raised (ie when someone clicks that button).

like image 113
Matt Hamilton Avatar answered Sep 22 '22 22:09

Matt Hamilton