По второму вопросу: Если есть столбец с ID=123, то есть и объект в dataProvider'e c таким ID. Соотвественно достаточно написать метод типа getItemByID(id:int,collection:ArrayCollection):Object который будет возвращать нужный объект и сделать

Код:
dataGrid.selectedItem = getItemByID(123,dataGrid.dataProvider as ArrayCollection);