New to Telerik UI for WinFormsStart a free 30-day trial

Represents a dependency property definition in the Telerik Presentation Framework, providing the foundation for the advanced property system that enables theming, styling, inheritance, and data binding throughout the framework.

Definition

Namespace:Telerik.WinControls

Assembly:Telerik.WinControls.dll

Syntax:

C#
[TypeConverter(typeof(ExpandableObjectConverter))]
public class RadProperty

Inheritance: objectRadProperty

Fields

C#
public static readonly object UnsetValue

Properties

C#
public string FullName { get; }
C#
public int GlobalIndex { get; }

Gets the name of this property.

C#
public string Name { get; }
Property Value:

The string name that uniquely identifies this property within its owner type. This is the same name used when registering the property.

Remarks:

Property names must be unique within their owner type hierarchy. The name is used for property lookup operations and debugging. Once a property is registered, its name cannot be changed.

Gets the type that owns this property definition.

C#
public Type OwnerType { get; }
Property Value:

The Type that originally registered this property. This is typically the type where the property was first defined, though the property may be inherited by derived types.

Remarks:

The owner type is set when the property is registered through Register(string, Type, Type, RadPropertyMetadata) or RegisterAttached(string, Type, Type, RadPropertyMetadata). Derived types can add metadata through AddOwner(Type) but the original owner type remains unchanged.

Gets the type of values that can be stored in this property.

C#
public Type PropertyType { get; }
Property Value:

The Type that represents the data type of this property. All values assigned to this property must be compatible with this type.

Remarks:

This is the type specified when the property was registered through Register(string, Type, Type, RadPropertyMetadata) or RegisterAttached(string, Type, Type, RadPropertyMetadata). The property system uses this type for validation and type checking during value assignment and retrieval operations.

C#
public bool PropertyTypeIsValueType { get; }
C#
public ValidateValueCallback ValidateValueCallback { get; }

Methods

C#
public RadProperty AddOwner(Type ownerType, RadPropertyMetadata typeMetadata)
Parameters:ownerTypeTypetypeMetadataRadPropertyMetadataReturns:

RadProperty

C#
public RadProperty AddOwner(Type ownerType)
Parameters:ownerTypeTypeReturns:

RadProperty

C#
public override bool Equals(object obj)
Parameters:objobjectReturns:

bool

Overrides: object.Equals(object)

C#
public static RadProperty Find(string className, string propertyName)
Parameters:classNamestringpropertyNamestringReturns:

RadProperty

C#
public static RadProperty Find(Type objectType, string propertyName)
Parameters:objectTypeTypepropertyNamestringReturns:

RadProperty

C#
public PropertyDescriptor FindClrProperty()
Returns:

PropertyDescriptor

C#
public static RadProperty FindSafe(string className, string propertyName)
Parameters:classNamestringpropertyNamestringReturns:

RadProperty

C#
public static RadProperty FindSafe(Type objectType, string propertyName)
Parameters:objectTypeTypepropertyNamestringReturns:

RadProperty

C#
public override int GetHashCode()
Returns:

int

Overrides: object.GetHashCode()

C#
public RadPropertyMetadata GetMetadata(RadObject radObject)
Parameters:radObjectRadObjectReturns:

RadPropertyMetadata

C#
public RadPropertyMetadata GetMetadata(RadObjectType radObjectType)
Parameters:radObjectTypeRadObjectTypeReturns:

RadPropertyMetadata

Determines whether the specified value is type-compatible with this property.

C#
public bool IsValidType(object value)
Parameters:valueobject

The value to check for type compatibility.

Returns:

bool

True if the value is type-compatible; otherwise, false.

Remarks:

This method only checks type compatibility and does not invoke custom validation callbacks. Use IsValidValue for complete validation including custom validation logic.

Determines whether the specified value is valid for this property on the given instance.

C#
public bool IsValidValue(object value, RadObject instance)
Parameters:valueobject

The value to validate.

instanceRadObject

The RadObject instance where the value would be applied.

Returns:

bool

True if the value is valid; otherwise, false.

Remarks:

This method performs both type checking and custom validation. It first verifies that the value is compatible with the property type, then calls the ValidateValueCallback if one was specified during property registration.

C#
public void OverrideMetadata(Type forType, RadPropertyMetadata typeMetadata)
Parameters:forTypeTypetypeMetadataRadPropertyMetadata

Registers a new dependency property with metadata and a validation callback.

C#
public static RadProperty Register(string name, Type propertyType, Type ownerType, RadPropertyMetadata typeMetadata, ValidateValueCallback validateValueCallback)
Parameters:namestring

The name of the property to register.

propertyTypeType

The type of the property value.

ownerTypeType

The type that owns this property.

typeMetadataRadPropertyMetadata

Property metadata including default value, inheritance behavior, and callbacks.

validateValueCallbackValidateValueCallback

A callback method to validate property values before they are set.

Returns:

RadProperty

A RadProperty identifier that can be used to set or get property values.

Remarks:

This overload provides validation capabilities, allowing you to verify property values before they are assigned. The validation callback is called for every value assignment and should return true for valid values, false for invalid ones.

Registers a new dependency property with the specified metadata.

C#
public static RadProperty Register(string name, Type propertyType, Type ownerType, RadPropertyMetadata typeMetadata)
Parameters:namestring

The name of the property to register.

propertyTypeType

The type of the property value.

ownerTypeType

The type that owns this property.

typeMetadataRadPropertyMetadata

Property metadata including default value, inheritance behavior, and callbacks.

Returns:

RadProperty

A RadProperty identifier that can be used to set or get property values.

Remarks:

This is the primary method for registering properties that belong to a specific type. The property can be accessed only through instances of the ownerType or its derived types. Use RegisterAttached(string, Type, Type, RadPropertyMetadata) for properties that can be applied to any RadObject.

Registers an attached property with validation capabilities.

C#
public static RadProperty RegisterAttached(string name, Type propertyType, Type ownerType, RadPropertyMetadata typeMetadata, ValidateValueCallback validateValueCallback)
Parameters:namestring

The name of the attached property to register.

propertyTypeType

The type of the property value.

ownerTypeType

The type that defines this attached property.

typeMetadataRadPropertyMetadata

Property metadata including default value and callbacks.

validateValueCallbackValidateValueCallback

A callback method to validate property values before they are set.

Returns:

RadProperty

A RadProperty identifier for the attached property.

Remarks:

This overload combines attached property functionality with value validation, ensuring that only valid values can be assigned to the property regardless of which RadObject instance the property is applied to.

Registers an attached property that can be applied to any RadObject instance.

C#
public static RadProperty RegisterAttached(string name, Type propertyType, Type ownerType, RadPropertyMetadata typeMetadata)
Parameters:namestring

The name of the attached property to register.

propertyTypeType

The type of the property value.

ownerTypeType

The type that defines this attached property.

typeMetadataRadPropertyMetadata

Property metadata including default value and callbacks.

Returns:

RadProperty

A RadProperty identifier for the attached property.

Remarks:

Attached properties are a special kind of property that can be set on any RadObject, not just instances of the ownerType. This is useful for layout properties, styling hints, and other cross-cutting concerns that need to be applied broadly.