public BindingShim(FrameworkElement element, Binding binding, Action changedHandler)
{
_element = element;
_binding = binding;
_instanceCount++;
_attachedDP = DependencyProperty.RegisterAttached("BoundParameter" + _instanceCount,
typeof(object), typeof(BindingShim),
new PropertyMetadata(OnChanged));
_element.SetBinding(_attachedDP, _binding);
_value = _element.GetValue(_attachedDP);
// Initialize _changedHandler after setting up the binding so we don't invoke
// it when the OnChanged handled gets called as a side-effect of setting the binding!
_changedHandler = changedHandler;
}