[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.
Class | Description |
---|---|
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. |
Interface | Description |
---|---|
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. |
Delegate | Description |
---|---|
ChangeEventHandler | Defines a signature for change notification event handlers. |
Enumeration | Description |
---|---|
CollectionChangeType | Identifies the type of change to a collection. |