В итоге я решил эту проблему, добавив логическое «расширенное» к моей модели данных, которое по умолчанию было ложным. При использовании метода click для строк я отправлял строку и перебирал все строки - когда он нашел правильную строку, он инвертировал логическое значение и вышел из функции. Затем при обновлении данных я перезаписал их в массиве, связанном с источником данных, вместо того, чтобы делать это непосредственно с источником данных. Строки теперь остаются открытыми даже при обновлении, и вы можете открыть несколько строк одновременно. :)