When you bind the logical resource as a StaticResource, it causes the binding to occur at construction time. On the other hand, the DynamicResource markup extension binds to a resource dynamically, only when it is needed.
In the preceding example, when we registered the resource to the Background property of the Border control as a StaticResource, we were not able to see the change reflected in the UI, even though we replaced the resource with a new object on selection of the radio button. But when we changed the binding to DynamicResource, the change was automatically reflected. This is because the dynamic resource binding refreshes itself if the object changes. But this is not same with the static resource binding, as it always keeps referencing the old object.