Hi,
Since you are using the List<> , the add,remove notifications are not triggered,therefore the target is not updated eventhough you updated the datasource.There is a class ObservableCollection<> that triggers the add , remove notifications itself and update the view accordingly.Otherwise you update the source and target explicitly , for eg:
BindingExpression expression = BindingOperations.GetBindingExpression(thedatagrid, DataGrid.ItemsSourceProperty);
if (null != expression)
{
expression.UpdateSource();
}