getRowClass нужно назначать только один раз. Это не функция, которую вы вызываете, это функция, вызываемая сеткой каждый раз при визуализации строки. Вместо того, чтобы назначать его внутри функции обработки событий, ему следует назначать ОДИН раз, где-то на уровне приложения (например, там, где сначала был настроен сам Grid1, было бы наиболее логичным местом). Это может или не может быть вашей проблемой, в зависимости от того, как вызывается ваша функция Add, что не ясно. Имейте в виду, что, поскольку вы полагаетесь на IDList внутри getRowClass, вам также нужно будет иметь ссылку на эту переменную, которая находится в области действия функции, и вам, вероятно, также придется добавить проверки, чтобы убедиться, что она действительна перед доступом это.
Вы также не показываете, где Grid1 перерисовывается. Как объяснено выше, getRowClass выполняется только при визуализации строк, поэтому, если вы не обновляете Grid1 где-то, что не показано в вашем коде, getRowClass никогда не будет вызываться.