RadGridView provides support of several types of dynamic data. This article will discuss each one of them.
When the bound object is recognized as IDynamicMetaObjectProvider type, the control uses separate logic that operates with dynamic types. Thus, standard CLR properties registered in the dynamic type need to be exposed through the DLR API. A detailed look over the approach of achieving this is discussed in the Have mixed CLR and DLR properties topic.
The control supports binding to any type that implements the standard DLR interface IDynamicMetaObjectProvider, such as DynamicObject and ExpandoObject. An example of such implementation with the control is demonstrated in the Binding to DynamicObject demo of the SDK Examples Browser.
In case a custom Type needs to be provided by the dynamic type implementation, the ICustomTypeProvider interface can be used. RadGridView provides support for such types as well. A common implementation of the interface will consist of creating the custom Type and a custom PropertyInfo that stores the properties of this Type. An example of defining an ICustomTypeProvider object bound to RadGridView is illustrated in the Binding to ICustomTypeProvider demo of the SDK Examples Browser.
When there is a need for providing the information regarding a given type at runtime, the ICustomTypeDescriptor comes in handy. A demonstration of such an implementation with the RadGridView control can be found in the Binding to ICustomTypeDescriptor demo of the SDK Examples Browser.