И вот в чем дело: при клике по строке в гриде у меня вызывалась форма в которой осуществлялась редоктирование данной строки. Особенность в том что форма принимала весь DataTable а в тексбоксы биндилось текущее значение. И все работало прекрасно, т.е. как я хотел. Но если пользователь совершал кликом по заголовку колонки грида сортировку то все рушилось. В форме стояла строка типа Table.Rows[binding.Position].Delete ? так вот этот код удалял строку которая не была текущей а имела эту позицию в первичной выборки. Разрешил я это дела следующим образом
DataRowView drv = (DataRowView)this.BindingContext[Table].Current;
drv.Delete();