public virtual void Attach(FrameworkElement frameworkElement) { //we need to fix the datacontext for databinding to work if(frameworkElement != null) { frameworkElement.AddDataContextChangedHandler(this.DataContextChanged); if (frameworkElement.DataContext != null) { this.DataContextChanged(frameworkElement, EventArgs.Empty); } } }