Constable Authorization Engine 2.0 BETA

LaMarvin.ComponentModel Namespace

[This is preliminary documentation and subject to change.]

The namespace defines types that fall broadly into two categories:

Changes to objects are represented by two pairs of events: the InstanceChanging event is raised before the change actually takes place; the InstanceChanged event is raised after the change has been performed. This simple mechanism along with the ChangeUndoManager class hierarchy is used to implement a flexible, reusable framework supporting rich design-time experience, including undo/redo and the Model-View-Controller (MVC) design pattern.

The collection updater design patern allows for implementation of collections that can change their behavior dynamically at runtime. The design pattern is used internally by all LaMarvin-provided code libraries.

The collection updater pattern is designed to allow collections derived from the CollectionBase class to delegate implementation of their protected virtual (CanOverride in Visual Basic) methods to the corresponding methods implemented by the associated updater object. Becaue the updater object associated with a given collection can be changed at runtime, the collection appears to change its behavior.

The updater object is defined by the ICollectionUpdater interface. The CollectionUpdaterBase class is a base class for objects implementing the ICollectionUpdater interface.

Namespace hierarchy


CollectionChangeEventArgs Represents a change to a collection instance.
CollectionChangeUndoManager Manages undo operations for IList-based collections.
CollectionUpdaterBase Provides an abstract (MustInherit in Visual Basic) base class for an extensible ICollectionUpdater implementation.
ExpandablePropertyAttribute Signifies a property that can be expanded in a visual representation.
ChangeableCollectionBase The abstract (MustInherit in Visual Basic) base class for all changeable collections that implement the collection updater design pattern.
ChangeEventArgs The base class for all change notification events.
ChangeUndoManager Defines a contract for types that listen to change notification for the purposes of performing corresponding undo and redo operations.
OrdinalAttribute Decorates programming elements that can be sorted.
PropertyChangeEventArgs Represents a change to a property of an object.
PropertyChangeUndoManager Manages undo and redo operations for property updates.
TypeInfoAttribute Associates a class with a descriptor containing metadata that describe several aspects of the decorated class understood and used by the design-time infrastructure.
UndoEngine Implements undo/redo services for object graphs that generate change notification events by means of the IChangeEventSource interface contract.
UndoEngine.UndoGroup Represents a group of changes that should be handled as a unit.
UndoException Exception signifying failures in the designer undo feature.
UndoItemCollection Represents a collection of IUndoItem-compatible objects.


ICollectionUpdater Represents an object to which a collection delegates its update methods.
IChangeableCollection Represents a collection that can be updated. Typically used in conjunction with an ICollectionUpdater implementation to customize collection's runtime behavior dynamically.
IChangeEventObserver Defines a contract for an adapter-like object that is interested in observing change events for possibly multiple event sources.
IChangeEventPropagator Defines a contract that should be implemented by object graphs for propagating change notification events up the owner-like relationship chain of objects
IChangeEventSource Defines a source of change event notifications.
IUndoItem Defines a contract representing an undoable change item.


ChangeEventHandler Defines a signature for change notification event handlers.


CollectionChangeType Identifies the type of change to a collection.