When Silverlight databinding evaluates a binding expression, it does one of two things. If the object it is bound to inherits from FrameworkElement and there is a DependencyProperty matching the binding expression, it uses FrameworkElement.GetValue to retrieve the value [simplified]. If not a FrameworkElement and not a DependencyProperty, Silverlight falls back to using reflection to retrieve the values. This is problematic if you attempt to data bind to an anonymous type. Continue reading here ......