itembound sarebbe l'evento che genera il datagrid ogni volta che fa una riga.
la if non fa altro che controllare se la riga che generi sia una Item o un Alternating se le condizioni sono vere ti da errore, magari a riga vuota ricevi errore ma non credo.
cmq nella parte else puoi controllare la riga dove sei e vedere se questa è vuota o no e restituire di conseguenza l'errore.