# RadProperty

RadProperty encapsulates properties used in RadObject and supports [dependency properties](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/dependency-properties). Each RadProperty has a name, type, owner and [metadata](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/radpropertymetadata), i.e. information about the property. Each RadProperty has mechanisms for synchronizing with other properties in the system and for validating itself.

The RadProperty **AddOwner** method associates the owner's type and potentially merges the owners metadata.

The static RadProperty **Register** method creates an instance of a RadProperty and is used to make the property known to TPF. Typically the property is then wrapped in a standard CLR style property as a convenience. In the wrapper property, RadObject methods **GetValue** and **SetValue** communicate with TPF. The example below shows a "phone" property being registered, and then being wrapped as a standard CLR string property. Note: The standard naming convention for dependency properties is \<Property name> + "Property".

 

 

```C#
public static RadProperty PhoneProperty = RadProperty.Register(
    "Phone",
    typeof(string),
    typeof(BusinessCardElement),
    new RadElementPropertyMetadata("", ElementPropertyOptions.None));
public string Phone
{
    get
    {
        return (string)this.GetValue(PhoneProperty);
    }
    set
    {
        this.SetValue(PhoneProperty, value);
    }
}

```

```VB.NET
Public Shared PhoneProperty As RadProperty = RadProperty.Register("Phone", GetType(String), GetType(BusinessCardElement), New RadElementPropertyMetadata("", ElementPropertyOptions.None))
Public Property Phone() As String
    Get
        Return DirectCast(Me.GetValue(PhoneProperty), String)
    End Get
    Set(value As String)
        Me.SetValue(PhoneProperty, value)
    End Set
End Property

```



## See Also

* [BasePrimitive](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/baseprimitive)

* [Choosing an Ancestor Class](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/choosing-an-ancestor-class)

* [Class Hierarchy Overview](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/class-hierarchy-overview)

* [LayoutPanel](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/layoutpanel)

* [RadComponent, RadComponentElement](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/radcomponent-radcomponentelement)

* [RadControl](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/radcontrol)

* [RadElement](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/radelement)

* [RadItem](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/class-hierarchy/raditem)
