[This is preliminary documentation and is subject to change.]

The Spielwerke.Data namespace is the central hinge of the Spielwerke components. It contains the classes and interfaces which form the API between the generic Spielwerke components accessing the properties (the property consumers, e. g. PPropertyGrid) and the property storage (the property providers, e. g. Spielwerke.EntitySystem.Core) on the other side.

Syntax

C#
namespace Spielwerke.Data
Visual Basic (Declaration)
Namespace Spielwerke.Data
Visual C++
namespace Spielwerke.Data

Classes

  ClassDescription
Public classDisplayLabelAttribute
Attribute to change a label of a property from its default name to an arbitrary string.
Public classNullPropertyHandleException
Exception class used by the PropertyHandle if the PropertyHandle used is unexpectedly Null.
Public classPropertyContainerChangedEventArgs
Provides data for the PropertyChanged event in IMutablePropertyContainer.
Public classPropertyException
Base class for all exceptions generated by Property Library.
Public classPropertyNotFoundException
Exception class used by the PropertyHandle if it cannot find a property with a given name.
Public classPropertyProviderException
Exception class which encapsulates all exceptions thrown by property providers.
Public classSpielwerkeInitializer
Class used to initalize the Spielwerke.Data library.
Public classTemporaryObjectPropertyAttribute
Attach this attribute to properties which return a reference object which is created in the "get" function. The PropertyHandle will then ensure that changes to the child properties of those objects will automatically cause a "set" call for the same property.
Public classValueChangedDependencyAttribute
Attach this attribute to make sure that callbacks using PropertyHandle.AddValueChanged will not only subscribe to the property of the PropertyHandle but also all other properties given by this attribute.

Structures

  StructureDescription
Public structurePropertyChain
Represents the property path, the complete chain of properties from the root to any property in the property tree.
Public structurePropertyHandle
The PropertyHandle is the central API used by all property consumers to access the underlying data.
Public structurePropertyHandle..::SyncLock
Helper object which can be used to synchronize the access of multiple threads to the data underlying a property handle.

Interfaces

  InterfaceDescription
Public interfaceIDisplayLabelAttribute
Interface used by UserName to determine the property label displayed to the user.
Public interfaceIMutablePropertyContainer
Interface that can be implemented by containers whose properties can be changed during their lifetime (like lists, dictionaries etc).
Public interfaceIMutablePropertyContainerRead
Interface which must be implemented by containers which can change their properties during their lifetime (like lists, dictionaries etc).
Public interfaceIPropertyCache
Any property container which cannot immediately decide if it contains certain properties (e. g. because the actual container is hold remotely and needs to be queried over the network) should implement this feature to allow easy access to child properties of containers not yet copied into the cache. The interface is used by PropertyHandle automatically, if it is implemented.

Delegates

  DelegateDescription
Public delegatePropertyContainerChangedEventHandler
The event handler used for the events fired if a property container changes its structure.
Public delegatePropertyHandle..::AsyncExceptionHandler
Public delegatePropertyHandle..::AsyncProcessAttributeDelegate<(Of <AttributeType, UserDataType>)>
Delegate type for use with PropertyHandle.AsyncRequestTypeAttribute, PropertyHandle.AsyncRequestPropertyAttribute or PropertyHandle.AsyncRequestAttribute. Triggered upon completion of the asynchronous request.
Public delegatePropertyHandle..::PropertyVisitor
Property visitor delegate, can be passed to VisitProperties(PropertyHandle..::PropertyVisitor) method.

Enumerations

  EnumerationDescription
Public enumerationPropertyContainerChangedEventArgs..::ChangeType
The type of change stored in a PropertyContainerChangedEventArgs object.
Public enumerationPropertyHandle..::VisitorReturnType
Return type of the PropertyHandle..::PropertyVisitor, signalling if the iteration should abort, recurse or continue.

Remarks

Property consumers always access the properties through the PropertyHandle class, retrieving additional information required for their functionality through the attributes attached to the property handle.

Property providers are always accessed using the TypeDescriptor, so for normal .NET classes all public properties are visible by default to the property consumers.

Dynamic containers whose contents are accessible to the PropertyHandle can be created with the functions Spielwerke.Data.Helpers.ContainerFactory.CreateDictionary and Spielwerke.Data.Helpers.ContainerFactory.CreateList.