I managed to solve this by suspending and resuming the events, then refresh the view. In case someone needs this:
var items = view.store.data.items
var dataIndex = 'dataIndexOfCheckColumn';
var check = true;
/*suspend events to block firing the events on setting record values
then resume and refresh the view
*/
view.store.suspendEvents();
for (var i = 0; i < items.length; i++)
{
var record = view.store.getAt(i);
record.set(dataIndex, check);
this.fireEvent('checkchange', this, i, check, record);
}
view.store.resumeEvents();
view.getView().refresh();