A DataGrid bound "directly" to a DataTable is actually using the DefaultView property of the DataTable. It follows that the RowFilter, RowStateFilter and Sort properties of the DefaultView suddenly become very important in the explanation of why new rows added to your DataGrid suddenly disappear as soon as they are left out of focus.
To insure that the grid behaves somewhat predictably, this static member helps:
internal static void DataDefaultView(DataView TargetDefaultView)
{
TargetDefaultView.RowFilter = String.Empty;
TargetDefaultView.RowStateFilter = DataViewRowState.CurrentRows;
TargetDefaultView.Sort = String.Empty;
}