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!
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...