Another alternative you might consider is to use two integer properties to represent the monster's current velocity instead, specifying the X and Y components:
int VelocityX;
int VelocityY;
Currently you would limit the values to -1, 0, and 1 (but you could specify higher velocities in the future).
Then your code to adjust the monster (X,Y) location would be:
monsterPlayField.X += monsterPlayField.VelocityX;
monsterPlayField.Y += monsterPlayField.VelocityY;
You'd still need to range-check the X and Y values after changing them.