setIndex should always fire indexChanged