Interface IExpression
Defines a contract for expression objects that can provide dynamic property values and participate in the RadProperty value resolution system.
Namespace: Telerik.WinControls
Assembly: Telerik.WinControls.dll
Syntax
public interface IExpression
Remarks
IExpression enables advanced property value scenarios such as data binding, calculated values, and property value forwarding. Expression objects can provide values that change over time and notify the property system when updates are needed.
Implementations participate in the property value precedence chain and can override local values, inherited values, or default values depending on their configuration and attachment to specific RadObject instances.
Methods
GetValue(RadObject, RadProperty)
Gets the current value for the specified property on the given RadObject.
Declaration
object GetValue(RadObject forObject, RadProperty property)
Parameters
RadObject
forObject
The RadObject instance for which to retrieve the property value. |
RadProperty
property
The RadProperty whose value should be retrieved. |
Returns
System.Object
The current value of the property, or UnsetValue if no value is available. |
Remarks
This method is called by the property system when resolving property values. Implementations should return the appropriate value based on their expression logic or UnsetValue to allow fallback to the next value source.
OnAttach(RadObject, RadProperty)
Called when this expression is being attached to the specified property on the given RadObject.
Declaration
void OnAttach(RadObject radObject, RadProperty dp)
Parameters
RadObject
radObject
The RadObject to which the expression is being attached. |
RadProperty
dp
The RadProperty to which the expression is being attached. |
Remarks
This method provides an opportunity for expressions to initialize resources, subscribe to events, or perform other setup operations when they begin providing values for a property.
OnDetach(RadObject, RadProperty)
Called when this expression is being removed from the specified property on the given RadObject.
Declaration
void OnDetach(RadObject radObject, RadProperty dp)
Parameters
RadObject
radObject
The RadObject from which the expression is being detached. |
RadProperty
dp
The RadProperty from which the expression is being detached. |
Remarks
This method provides an opportunity for expressions to clean up resources, unsubscribe from events, or perform other cleanup operations when they are no longer providing values for a property.
SetValue(RadObject, RadProperty, Object)
Attempts to set a value through this expression.
Declaration
bool SetValue(RadObject radObject, RadProperty dp, object value)
Parameters
RadObject
radObject
The RadObject on which to set the property value. |
RadProperty
dp
The RadProperty to set. |
System.Object
value
The value to set. |
Returns
System.Boolean
|
Remarks
Most expression types are read-only and will return false
from this method.
Data binding expressions may support two-way binding and return true
when
they successfully update the underlying data source.