title: Control does not refresh after CanExecute-Result does change
body: <p>in my window I have buttons for load and save methods. I use CommandBinding and the save-button has a CanExecute property to keep the user from saving the data before it is loaded. </p>
  
  <p>The CanExecute-Methode is connected to a simple bool value called "canSaveXML"</p>
  
  <pre><code>private void Save_CanExecute(object sender, CanExecuteRoutedEventArgs e)
  {
      if (canSaveXML == false)
      {
          e.CanExecute = false;
      }
      else
      {
          e.CanExecute = true;
      }
      e.Handled = true;
  } 
  </code></pre>
  
  <p>My intention is to set canSaveXML = true after the data was loaded but the control does not refresh after the value did change. I did some reading and found out I have to call CommandManager.InvalidateRequerySuggested. I do that now and my code looks like this.</p>
  
  <pre><code>canSaveXML = true;
  CommandManager.InvalidateRequerySuggested();
  </code></pre>
  
  <p>But the control (button) still does not refresh. I still is disabled untill I trigger anything on the UI or minimixe/maximize the window. After I did that the button is enabled.</p>
  
  <p>What is wrong here?</p>
  
  <p>In a MSDN sample CommandManager.InvalidateRequerySuggested is called with a dispatchertimer again and again but I refuse to believe that would be the only solution.</p>