You could also set the X scale value to 1 or -1 (something I tried before watching this video) but your flip horizontal is easier.
UPDATE: I simplified your code for Flip() to make it more readable:
private void Flip(){
if(direction.X < 0){Sprite3DNode.FlipH=true;}
else if(direction.X > 0){Sprite3DNode.FlipH=false;}
}