title: WPF code tried to reactivate a BindingExpression that was already marked as detached
body: <p>I have a <code>WPF</code> application in which different user controls (images, labels, value converters) have a binding to a <code>listview</code>. So as a list view item is selected additional information is displayed in these controls.</p>
  
  <p>Everything works fine, but every time I try to scroll the <code>listview</code> very fast or switch the selected item repetitively the application crashes and <code>internal WPF code tried to reactivate a</code>BindingExpression<code>that was already marked as detached</code> error is thrown.</p>
  
  <p>What could it be the cause? How can I debug more in detail what binding is causing this problem? Might it be because some of the images are retrieved async from some urls and then converted to <code>BitmapImage</code> using a value converter?
  Here the full details:</p>
  
  <pre><code>System.InvalidOperationException was unhandled
  HResult=-2146233079
  Message=Internal error: internal WPF code tried to reactivate a BindingExpression that was already marked as detached.
  Source=PresentationFramework
  StackTrace:
     at System.Windows.Data.BindingExpressionBase.SetStatus(BindingStatusInternal status)
     at MS.Internal.Data.ClrBindingWorker.SetStatus(PropertyPathStatus status)
     at MS.Internal.Data.ClrBindingWorker.CompleteGetValue(AsyncGetValueRequest request)
     at MS.Internal.Data.ClrBindingWorker.OnCompleteGetValueOperation(Object arg)
     at MS.Internal.Data.DataBindOperation.Invoke()
     at MS.Internal.Data.DataBindEngine.ProcessCrossThreadRequests()
     at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
     at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
     at System.Windows.Threading.DispatcherOperation.InvokeImpl()
     at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
     at System.Windows.Threading.DispatcherOperation.Invoke()
     at System.Windows.Threading.Dispatcher.ProcessQueue()
     at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
     at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
     at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
     at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
     at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
     at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
     at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
     at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG&amp; msg)
     at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
     at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
     at System.Windows.Threading.Dispatcher.Run()
     at System.Windows.Application.RunDispatcher(Object ignore)
     at System.Windows.Application.RunInternal(Window window)
     at System.Windows.Application.Run(Window window)
     at System.Windows.Application.Run()
     at test.App.Main() in c:\bitbucket\desktop-case-cit3\test\obj\Debug\App.g.cs:line 0
     at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
     at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
     at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
  </code></pre>