skip navigation
  • Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • AI Coding Assistants
    • Embedded Reporting
    • Document Processing Libraries
    • SSO Account Sign-in

    Web

    Kendo UI UI for Angular UI for Vue UI for jQuery KendoReact UI for Blazor UI for ASP.NET Core UI for ASP.NET MVC UI for ASP.NET AJAX

    Mobile

    UI for .NET MAUI

    Document Management

    Telerik Document Processing

    Desktop

    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF

    Reporting

    Telerik Reporting Telerik Report Server

    Testing & Mocking

    Test Studio Telerik JustMock

    CMS

    Sitefinity

    AI Productivity Tools

    AI Coding Assistants

    UI/UX Tools

    ThemeBuilder Design System Kit Templates and Building Blocks

    Debugging

    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Everywhere Reporter FiddlerCore

    Free Tools

    KendoReact Free VB.NET to C# Converter Testing Framework
    View all products
  • Overview
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Support and Learning

    • Support and Learning Hub
    • First Steps
    • Docs
    • Demos
    • Virtual Classroom
    • Forums
    • Videos
    • Blogs
    • Accessibility
    • Submit a Ticket

    Productivity and Design Tools

    • Visual Studio Extensions
    • Visual Studio Templates
    • Embedded Reporting
  • Pricing
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Downloads
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

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

true if the expression handled the set operation; otherwise, false.

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.

Extension Methods

SvgExtentions.Traverse<T>(T, Func<T, IEnumerable<T>>)
SvgExtentions.TraverseDepthFirst<T>(T, Func<T, IEnumerable<T>>)
Getting Started
  • Install Now
  • Demos
  • Step-by-Step Tutorial
  • Sample Applications
  • SDK Samples
  • Visual Studio Extensions
Support Resources
  • Code Library
  • Knowledge Base
  • Videos
Community
  • Forums
  • Blogs
  • Feedback Portal
  • Document Processing Feedback Portal

Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.