title: relaycommand CanExecute returns incorrect value
body: <p>I create a pretty standard MVVM Light RelayCommand, with the canExecute parameter being:</p>
  
  <blockquote>
    <p>() => (customer.Regions.Count > 0)</p>
  </blockquote>
  
  <p>when necessary I call <code>RaiseCanExecuteChanged();</code> and the canExecute is not reevaluated correctly. I then also call it manually like this: <code>var canExecute = myCommand.CanExecute(null);</code>, and it is still wrong. In the next statement right after I do <code>var foo = (customer.Regions.Count &gt; 0)</code>, which returns the correct result. What is going on here?</p>
  
  <p><strong>Command definition:</strong></p>
  
  <pre><code>SaveCustomerRegionsCommand = new RelayCommand(SaveCustomerRegions, () =&gt; (customer.Regions.Count &gt; 0));
  </code></pre>
  
  <p>customer is a private property set when the class is instantiated.</p>