title: WPF - How to force a Command to re-evaluate 'CanExecute' via its CommandBindings
body: <p>I have a <code>Menu</code> where each <code>MenuItem</code> in the hierarchy has its <code>Command</code> property set to a <code>RoutedCommand</code> I've defined.  The associated <code>CommandBinding</code> provides a callback for the evaluation of <code>CanExecute</code> which controls the enabled state of each <code>MenuItem</code>.</p>
  
  <p>This <em>almost</em> works.  The menu items initially come up with the correct enabled and disabled states.  However when the data that my <code>CanExecute</code> callback uses changes, I need the command to re-request a result from my callback in order for this new state to be reflected in the UI.</p>
  
  <p>There do not appear to be any public methods on <code>RoutedCommand</code> or <code>CommandBinding</code> for this.</p>
  
  <p>Note that the callback is used again when I click or type into the control (I guess it's triggered on input because mouse-over doesn't cause the refresh).</p>