WPF Commanding – When do Commands re-evaluate their CanExecute method?