XAMLMarkupExtensions Special class which use as value provider for bindings. Some properties are sealing (Setter.Value and Binding.Source) and cannot change, so if we use such provider, it stay same but it's value free to change. Property info of property. Providing value. Raise event. Extension methods for dependency objects. Gets the value thread-safe. The object. The property. The type of the value. The value. Sets the value thread-safe. The object. The property. The value. The type of the value. The event arguments of the EndpointReached event. The endpoint. Get or set the value that will be stored to the endpoint. Get or set a flag indicating that the event was handled. Creates a new object. The endpoint. Markup extensions that implement this interface shall be able to return their target objects. They should also implement a SetNewValue function that properly set the value to all their targets with their own modification of the value. Get the paths to all target properties through the nesting hierarchy. A list of combinations of property types and the corresponsing stacks that resemble the paths to the properties. Trigger the update of the target(s). A specific path to follow or null for all targets. The output of the path at the endpoint. Format the output of the markup extension. Information about the endpoint. Information about the target. The output of this extension for the given endpoint and target. Check, if the given target is connected to this markup extension. Information about the target. True, if a connection exits. Interface for object which store at . Notify that some of dependencies are dead. Notify that all dependencies are dead. This class walks up the tree of markup extensions to support nesting. Based on Holds the collection of assigned dependency objects Instead of a single reference, a list is used, if this extension is applied to multiple instances. Holds the markup extensions root object hash code. Get the target objects and properties. A list of target objects. Get the paths to all target properties through the nesting hierarchy. A list of paths to the properties. An action that is called when the first target is bound. An action that is called when the first target is bound. An action that is called when the last target is unbound. This method can be called without before if extension disposed without adding targets. This function must be implemented by all child classes. It shall return the properly prepared output of the markup extension. Information about the target. Information about the endpoint. Check, if the given target is connected to this markup extension. Information about the target. True, if a connection exits. Override this function, if (and only if) additional information is needed from the instance that is passed to . A service provider. The ProvideValue method of the base class. A service provider. The value of the extension, or this if something gone wrong (needed for Templates). Set the new value for all targets. Trigger the update of the target(s). A specific path to follow or null for all targets. The output of the path at the endpoint. Sets the value of a property of type PropertyInfo or DependencyProperty. The new value. The target information. Determines, whether null values should be written. Gets the value of a property of type PropertyInfo or DependencyProperty. The target information. The value. Safely get the value of a property that might be set by a further MarkupExtension. The return type. The value supplied by the set accessor of the property. The property information. The index of the indexed property, if applicable. An optional endpoint information. An optional serviceProvider information. The value or default. This method must return true, if an update shall be executed when the given endpoint is reached. This method is called each time an endpoint is reached. Information on the specific endpoint. True, if an update of the path to this endpoint shall be performed. Get the path to a specific endpoint. The endpoint info. The path to the endpoint. Checks the existance of the given object in the target endpoint list. The object. True, if the extension nesting tree reaches the given object. An event handler that is called from the static class. The markup extension that reached an enpoint. The event args containing the endpoint information. Implements the IDisposable.Dispose function. Dispose resources. if calls from Dispose() method. if calls from finalizer. A static proxy class that handles endpoint reached events for a list of weak references of . This circumvents the usage of a WeakEventManager while providing a static instance that is capable of firing the event. A dicitonary which contains a list of listeners per unique rootObject hash. Fire the event. s root object hash code. The markup extension that reached an end point. The event args containing the endpoint information. Adds a listener to the inner list of listeners. s root object hash code. The listener to add. Clears the listeners list for the given root object hash code . Returns true if the given is already added, false otherwise. Root object hash code to check. Returns true if the given is already added, false otherwise. Removes a listener from the inner list of listeners. s root object hash code. The listener to remove. An empty static constructor to prevent the class from being marked as beforefieldinit. An extension that returns null. This function returns the properly prepared output of the markup extension. Information about the target. Information about the endpoint. This class ensures, that a specific object lives as long a associated object is alive. Based on: This member holds the list of all s and their appropriate objects. Initializes static members of the class. Static Constructor. Creates a new instance of Dictionary(object, ) and set it to the . This method adds a new object dependency The , which ensures the live cycle of The object, which should stay alive as long is alive true, if the binding was successfully, otherwise false The cannot be null The cannot be null cannot be type of The .Target cannot be the same as This method cleans up all independent (!.IsAlive) objects. This method cleans up all independent (!.IsAlive) objects or a single object. If defined, the associated object dependency will be removed instead of a full CleanUp A class that helps listening to changes on the Parent property of FrameworkElement objects. An attached property that will take over control of change notification. Get method for the attached property. The target FrameworkElement object. The target's parent FrameworkElement object. Set method for the attached property. The target FrameworkElement object. The target's parent FrameworkElement object. The callback for changes of the attached Parent property. The sender. The argument. A static list of actions that should be performed on parent change events. - Entries are added by each call of the constructor. - All elements are called by the parent changed callback with the particular sender as the key. The element this notifier is bound to. Needed to release the binding and Action entry. Constructor. The element whose Parent property should be listened to. The action that will be performed upon change events. Finalizer. Disposes all used resources of the instance. Dispose resources. if calls from Dispose() method. if calls from finalizer. This class implements the interfaces IServiceProvider and IProvideValueTarget for ProvideValue calls on markup extensions. Return the requested service. The type of the service. The service (this, if service ist IProvideValueTarget, otherwise null). The target object. The target property. The target property type. The target property index. An optional endpoint information. An optional IServiceProvider information. Create a new instance of a SimpleProvideValueServiceProvider. The target object. The target property. The target property type. The target property index. An optional endpoint information. An optional endpoint information. Create a new instance of a SimpleProvideValueServiceProvider. Information about the target. An optional endpoint information. An optional endpoint information. A static extension. Adopted from the work of Henrik Jonsson: http://www.codeproject.com/Articles/305932/Static-and-Type-markup-extensions-for-Silverlight, Licensed under Code Project Open License (CPOL). Occurs when a property value changes. Raises a new event. The name of the property that changed. The member type. The member. The result. Creates a new instance. Creates a new instance. The member name. This class stores information about a markup extension target. Gets the target object. Gets the target property. Gets the target property type. Gets the target property index. True, if the target object is a DependencyObject. True, if the target object is an endpoint (not another nested markup extension). Determines, whether both objects are equal. An object of type TargetInfo. True, if both are equal. Serves as a hash function. The hash value. Creates a new TargetInfo instance. The target object. The target property. The target property type. The target property index. Defines a collection of assigned dependency objects. Instead of a single reference, a list is used, if this extension is applied to multiple instances. Holds the collection of assigned dependency objects as WeakReferences and its property metadata. Holds hash codes of each target in . Allows fast find key in by object. is necessary, because different objects can has same hashcode. Holds the collection of assigned dependency objects which implements . This collection is subset of . Holds the collection of weak references, which target already collected by GC. This references should be removed from other collections. Gets the count of assigned dependency objects. Add new target to internal list. the new target. Weak reference of target object. Add property info of target object. The weak reference of target object. The target property. The type of target property. The index of target property. Check if target object and its property contains in list. Information about the target. if it is contains. Try find weak reference key of target object in list. The searching target object. of target object if it contains in list. otherwise. Get information of all target objects. Get information of all targets objects which implements . Clear all references to dead targets. Clear specified references. Clear all targets. Information about target object. Create new instance. The hashcode of target object. Hashcode of target object. Information about properties of target object. This class helps tracking the path to a specific endpoint. The path to the endpoint. Gets the endpoint. Add another step to the path. The TargetInfo object of the step. Get the next step and remove it from the path. The next steps TargetInfo. Get the next step. The next steps TargetInfo. Creates a new TargetPath instance. The endpoints TargetInfo of the path. Defines information about target object property. Gets the target property. Gets the target property type. Gets the target property index. Create new instance. The target property. The type of property. The target property index Compare to another object. Other object for comparing. if objects are equal, otherwise. A type extension. Adopted from the work of Henrik Jonsson: http://www.codeproject.com/Articles/305932/Static-and-Type-markup-extensions-for-Silverlight, Licensed under Code Project Open License (CPOL). Occurs when a property value changes. Raises a new event. The name of the property that changed. The resolved type. The type name. Creates a new instance. Creates a new instance. The name of the type. Override this function, if (and only if) additional information is needed from the instance that is passed to . A service provider. A binding proxy class that accepts bindings and forwards them to a normal property. Based on: and The source dependency property. Gets or sets the binding source. Gets or sets the target. Gets called, when a property changed. The event arguments. Gets the target value. A dynamic binding extension. Informiert über sich ändernde Eigenschaften. Notify that a property has changed The property that changed Gets or sets the source. Gets or sets the path. Gets or sets the converter. Gets or sets the converter parameter. Creates a new instance. Creates a new instance. The binding path. A design extension with alternating grid colors. Gets or sets the color for even rows. Gets or sets the color for odd rows. Creates a new instance. A string concatenation extension. Gets the list of items. Gets or sets the format string.