In my last article I discussed one method of passing information between components within an application. This method requires that you create properties and methods on your object classes that can be called from the various components at runtime. In certain scenarios, this method isn’t possible or is tedious at best. For example, let’s say we have an application for creating and managing widgets. We have created two commands. One allows the user to create new widgets and the other displays a dialog that lists all of the widgets that the user has created. While designing our application we decide that it would be nice if the dialog that lists the widgets would automatically update each time a new widget is created. This way, the user doesn’t have to close the dialog and re-open it in order to see the new widget in the list.