This is full code for my camera ( I think it's the problem !! )

Camera.cs

/// <summary>
/// Simple camera class for moving around the demos area.
/// </summary>
public class Camera : DrawableGameComponent
{
/// <summary>
/// Gets or sets the position of the camera.
/// </summary>
public Vector3 Position { get; set; }
public Matrix projection;
private float yaw;
private float pitch;
/// <summary>
/// Gets or sets the yaw rotation of the camera.
/// </summary>
public float Yaw
{
get { return yaw; }
set { yaw = MathHelper.WrapAngle(value); }
}
/// <summary>
/// Gets or sets the pitch rotation of the camera.
/// </summary>
public float Pitch
{
get { return pitch; }
set
{
pitch = value;
if (pitch > MathHelper.PiOver2 * .99f)
pitch = MathHelper.PiOver2 * .99f;
else if (pitch < -MathHelper.PiOver2 * .99f)
pitch = -MathHelper.PiOver2 * .99f;
}
}
/// <summary>
/// Gets or sets the speed at which the camera moves.
/// </summary>
public float Speed { get; set; }
/// <summary>
/// Gets the view matrix of the camera.
/// </summary>
public Matrix ViewMatrix { get; private set; }
/// <summary>
/// Gets or sets the projection matrix of the camera.
/// </summary>
public Matrix ProjectionMatrix { get; set; }
/// <summary>
/// Gets the world transformation of the camera.
/// </summary>
public Matrix WorldMatrix { get; private set; }
/// <summary>
/// Whether or not to use the default free-flight camera controls.
/// Set to false when using vehicles or character controllers.
/// </summary>
public bool UseMovementControls = true;
/// <summary>
/// Creates a camera.
/// </summary>
/// <param name="pos">Initial position of the camera.</param>
/// <param name="s">Speed of the camera per second.</param>
/// <param name="p">Initial pitch angle of the camera.</param>
/// <param name="y">Initial yaw value of the camera.</param>
public Camera(Game game, Vector3 pos, float s, float p, float y) : base (game)
{
float aspectRatio = (float)Game.Window.ClientBounds.Width /
(float)Game.Window.ClientBounds.Height;
// 45 degrees
float fieldOfView = MathHelper.PiOver4;
projection = Matrix.CreatePerspectiveFieldOfView(fieldOfView, aspectRatio, 0.1f, 7000);
Position = pos;
Speed = s;
Yaw = y;
Pitch = p;
ProjectionMatrix = projection;
//rayCastFilter = RayCastFilter;
}
/// <summary>
/// Moves the camera forward.
/// </summary>
/// <param name="distance">Distance to move.</param>
public void MoveForward(float distance)
{
Position += WorldMatrix.Forward * distance;
}
/// <summary>
/// Moves the camera to the right.
/// </summary>
/// <param name="distance">Distance to move.</param>
public void MoveRight(float distance)
{
Position += WorldMatrix.Right * distance;
}
/// <summary>
/// Moves the camera up.
/// </summary>
/// <param name="distance">Distanec to move.</param>
public void MoveUp(float distance)
{
Position += new Vector3(0, distance, 0);
}
/// <summary>
/// Updates the state of the camera.
/// </summary>
/// <param name="dt">Time since the last frame in seconds.</param>
/// <param name="keyboardInput">Input for this frame from the keyboard.</param>
/// <param name="oldMouseInput">Input from the previous frame from the mouse.</param>
/// <param name="mouseInput">Input for this frame from the mouse.</param>
public void Update(float dt, KeyboardState keyboardInput, MouseState mouseInput)
{
Yaw += (200 - mouseInput.X) * dt * .32f;
Pitch += (200 - mouseInput.Y) * dt * .32f;
WorldMatrix = Matrix.CreateFromAxisAngle(Vector3.Right, Pitch) * Matrix.CreateFromAxisAngle(Vector3.Up, Yaw);
WorldMatrix = WorldMatrix * Matrix.CreateTranslation(Position);
ViewMatrix = Matrix.Invert(WorldMatrix);
}
}

Here my modelManager.cs

// this methode updated , by calling it in the main Update methode inside my game :
class ModelManager{
.
.
.
.
public void Update(GameTime gameTime, KeyboardState KeyboardInputt,
KeyboardState PreviousKeyboardInputt, MouseState MouseInput)
{
// Update player Weapon and hands
//weaponWorldMatrix = WeaponWorldMatrix(0.45f, -0.75f, 1.65f);
//staticModel.Transform = weaponWorldMatrix;
//staticModel.model.CopyAbsoluteBoneTransformsTo(weaponTransforms);
Vector3 forward = cci.Camera.WorldMatrix.Forward + new Vector3(5, -5, 0);
Matrix translatePlayer = Matrix.CreateTranslation(cci.Camera.Position + cci.Camera.WorldMatrix.Forward + forward);
Matrix scalePlayer = Matrix.CreateScale(0.05f);
Matrix rotatePlayer = Matrix.Invert(Matrix.CreateFromAxisAngle(cci.Camera.ViewMatrix.Right,
cci.Camera.Pitch) * Matrix.CreateFromAxisAngle(cci.Camera.ViewMatrix.Up, cci.Camera.Yaw));
staticModel.Transform = scalePlayer * rotatePlayer * translatePlayer ;
}
.
.
.
.
}

This is the game.cs which is the main class ,

protected override void Initialize() {
camera = new Camera(this, new Vector3(0, 50, 50), 1000, 0, 0);
Components.Add(camera);
modelManager = new ModelManager(this, camera, GraphicsDevice);
}
protected override void LoadContent() {
spriteBatch = new SpriteBatch(GraphicsDevice);
modelManager.LoadContent(Content);
base.LoadContent();
}
protected override void Update(GameTime gameTime) {
graphics.GraphicsDevice.RasterizerState = RasterizerState.CullNone;
AMInput_PreviousKeyboardInput = AMInput_KeyboardInput;
AMInput_KeyboardInput = Keyboard.GetState();
AMInput_MouseInput = Mouse.GetState();
.
.
.
.
else if (state == GameState.game){
.
.
.
camera.Update((float)gameTime.ElapsedGameTime.TotalSeconds, AMInput_KeyboardInput, AMInput_MouseInput);
// Updating Modesl data such as Transformations
modelManager.Update(gameTime, AMInput_KeyboardInput, AMInput_PreviousKeyboardInput , AMInput_MouseInput);
.
.
.
.
.
.
base.Update(gameTime);
}