First up, a crash is an unhandled exception and if there's an exception then there's an error message. If you want us to help you with an error then you should always provide that error message because there's no guarantee that we'll have any idea what the problem is without it. In this case, I think I know though.
I would guess that your table has at least one non-nullable field. When you call AddNew a new row is created but not immediately added to the underlying table. When you select a different record, the new record gets added to the table. If the user hasn't set any of the fields in the new record then any fields that are non-nullable are invalid. You have to account for that possibility in your code.