In the early days of Silverlight binding support for advanced dynamic scenarios was very limited (remember my DataTable?). Since then, however, the platform has evolved greatly – so did our tools!
Dynamic code 2009 style:
Dynamic code 2011 style:
Now to bind RadGridView to some dynamic data you just need ObservableCollection<dynamic>:
RadGridView will auto-generate columns automatically using your DynamicObject GetDynamicMemberNames() implementation and will call your TryGetMember/TrySetMember (TryGetIndex/TrySetIndex in case of indexer binding) methods when needed.
To illustrate this I’ve made small example project (similar to this blog post) demonstrating RadGridView bound to collection of custom dynamic objects populated with unknown data from a serialized DataTable using plain WCF service: