TrackingPropertyDescriptor Class

Provides additional run-time type information for a tracking property of a model element.

Inheritance Hierarchy

System.Object
  System.ComponentModel.MemberDescriptor
    System.ComponentModel.PropertyDescriptor
      Microsoft.VisualStudio.Modeling.Design.ElementPropertyDescriptor
        Microsoft.VisualStudio.Modeling.Design.TrackingPropertyDescriptor
          Microsoft.VisualStudio.Modeling.DslDefinition.Design.DslDefinitionModelElementTrackingPropertyDescriptor

Namespace:  Microsoft.VisualStudio.Modeling.Design
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.10.0 (in Microsoft.VisualStudio.Modeling.Sdk.10.0.dll)

Syntax

'Declaration
Public Class TrackingPropertyDescriptor _
    Inherits ElementPropertyDescriptor
public class TrackingPropertyDescriptor : ElementPropertyDescriptor
public ref class TrackingPropertyDescriptor : public ElementPropertyDescriptor
type TrackingPropertyDescriptor =  
    class
        inherit ElementPropertyDescriptor
    end
public class TrackingPropertyDescriptor extends ElementPropertyDescriptor

The TrackingPropertyDescriptor type exposes the following members.

Constructors

  Name Description
Public method TrackingPropertyDescriptor(ModelElement, DomainPropertyInfo, DomainPropertyInfo, array<Attribute[]) Initializes a new instance of the TrackingPropertyDescriptor class.
Public method TrackingPropertyDescriptor(ElementTypeDescriptor, ModelElement, DomainPropertyInfo, DomainPropertyInfo, array<Attribute[]) Initializes a new instance of the TrackingPropertyDescriptor class and specifies a default value provider.

Top

Properties

  Name Description
Protected property AttributeArray Gets or sets an array of attributes. (Inherited from MemberDescriptor.)
Public property Attributes Gets the collection of attributes for this member. (Inherited from MemberDescriptor.)
Public property Category Gets the category in which to group the domain property when the property is displayed in a PropertyGrid control that is set to Categorized mode. (Inherited from ElementPropertyDescriptor.)
Public property ComponentType Gets the type of the model element to which this property is bound. (Inherited from ElementPropertyDescriptor.)
Public property Converter Gets the converter for the described property. (Inherited from ElementPropertyDescriptor.)
Public property Description Gets the description of the described property, as specified in the DescriptionResourceAttribute. (Inherited from ElementPropertyDescriptor.)
Public property DesignTimeOnly Gets whether this member should be set only at design time, as specified in the DesignOnlyAttribute. (Inherited from MemberDescriptor.)
Public property DisplayName Gets the display name of the described property, as specified in the DisplayNameResourceAttribute. (Inherited from ElementPropertyDescriptor.)
Public property DomainPropertyInfo Gets the property information object that was used to create this property descriptor. (Inherited from ElementPropertyDescriptor.)
Public property IsBrowsable Gets a value indicating whether the member is browsable, as specified in the BrowsableAttribute. (Inherited from MemberDescriptor.)
Public property IsInstanceBased Test if this PropertyDescriptor is based on an instance or a static type. (Inherited from ElementPropertyDescriptor.)
Public property IsLocalizable Gets a value indicating whether this property should be localized, as specified in the LocalizableAttribute. (Inherited from PropertyDescriptor.)
Public property IsReadOnly Gets a value that indicates whether the described property is read-only. (Inherited from ElementPropertyDescriptor.)
Public property ModelElement Gets the model element that was used to create this property descriptor. (Inherited from ElementPropertyDescriptor.)
Public property Name Gets the name of the member. (Inherited from MemberDescriptor.)
Protected property NameHashCode Gets the hash code for the name of the member, as specified in GetHashCode. (Inherited from MemberDescriptor.)
Public property PropertyType Gets the property type of the described property. (Inherited from ElementPropertyDescriptor.)
Public property SerializationVisibility Gets a value indicating whether this property should be serialized, as specified in the DesignerSerializationVisibilityAttribute. (Inherited from PropertyDescriptor.)
Public property SupportsChangeEvents Gets a value indicating whether value change notifications for this property may originate from outside the property descriptor. (Inherited from PropertyDescriptor.)

Top

Methods

  Name Description
Public method AddValueChanged (Inherited from ElementPropertyDescriptor.)
Public method CanResetValue Indicates whether the value of the domain property can be reset. (Overrides ElementPropertyDescriptor.CanResetValue(Object).)
Protected method CreateAttributeCollection Creates a collection of attributes using the array of attributes passed to the constructor. (Inherited from MemberDescriptor.)
Protected method CreateInstance Creates an instance of the specified type. (Inherited from PropertyDescriptor.)
Public method Equals Compares this to another object to see if they are equivalent. (Inherited from PropertyDescriptor.)
Protected method FillAttributes Adds the attributes of the PropertyDescriptor to the specified list of attributes in the parent class. (Inherited from PropertyDescriptor.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetChildProperties() Returns the default PropertyDescriptorCollection. (Inherited from PropertyDescriptor.)
Public method GetChildProperties(array<Attribute[]) Returns a PropertyDescriptorCollection using a specified array of attributes as a filter. (Inherited from PropertyDescriptor.)
Public method GetChildProperties(Object) Returns a PropertyDescriptorCollection for a given object. (Inherited from PropertyDescriptor.)
Public method GetChildProperties(Object, array<Attribute[]) Returns a PropertyDescriptorCollection for a given object using a specified array of attributes as a filter. (Inherited from PropertyDescriptor.)
Public method GetEditor Returns a value editor for the described property. (Inherited from ElementPropertyDescriptor.)
Public method GetHashCode Returns the hash code for this object. (Inherited from PropertyDescriptor.)
Protected method GetInvocationTarget This method returns the object that should be used during invocation of members. (Inherited from PropertyDescriptor.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method GetTypeFromName Returns a type using its name. (Inherited from PropertyDescriptor.)
Public method GetValue Gets the value of the domain property. (Inherited from ElementPropertyDescriptor.)
Protected method GetValueChangedHandler Retrieves the current set of ValueChanged event handlers for a specific component (Inherited from PropertyDescriptor.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method OnValueChanged Raises the ValueChanged event that you implemented. (Inherited from PropertyDescriptor.)
Public method RemoveValueChanged (Inherited from ElementPropertyDescriptor.)
Public method ResetValue Resets the value of the tracking property. (Overrides ElementPropertyDescriptor.ResetValue(Object).)
Public method SetValue Sets the value of the domain property. (Inherited from ElementPropertyDescriptor.)
Public method ShouldSerializeValue Indicates whether the value of the tracking property should be serialized. (Overrides ElementPropertyDescriptor.ShouldSerializeValue(Object).)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)

Top

Remarks

This class provides dynamic custom property information for a tracking property.

The Domain-Specific Language Tools (DSL Tools) use this type to represent a domain class property that, until it is updated by the user, is calculated based on the value of another domain property. This type controls how a tracking property is handled by the property grid in the domain model and provides transactions for modifying the described property.

A tracking property has two states: tracking and updated by the user. This state is represented by a second, Boolean property, which is specified when the tracking property descriptor is created. By default, the value of the Boolean property should be true, which corresponds to the tracking state.

This descriptor controls whether the Reset command is enabled on the shortcut menu in the property grid for the property, and updates the value of the associated Boolean property when the tracking property is reset.

Notes to Callers

To add a tracking property to a DSL definition, implement the following features:

  • A custom property-value-changed handler for each tracked property.

  • A custom type descriptor that returns a tracking property descriptor for each tracking property.

  • Every tracking property in such a way that its value is calculated when the associated Boolean property is true.

You also have to ensure that the value of every tracking property is set correctly whenever the store is constructed, such as during creation and loading of the DSL model.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Microsoft.VisualStudio.Modeling.Design Namespace

Other Resources

Defining Domain Properties