Thanks for the help! My implementation of recalculate() in drive never called beginInsertRows(), endInsertRows(), beginRemoveRows() or endRemoveRows() so, like you had said, the view never knew that there was a change in the number of rows.