The easiest way to get around this performance problem at the moment would be to remove the binding to FeatureDataGrid.GraphicsLayer just before calling Update, then on FeatureLayer.UpdateCompleted rebind the FeatureLayer to FeatureDataGrid.GraphicsLayer . What is happening is the FDG is calling 4,000 delete row calls and when your resutls comes back with lets say for example 2,000 graphics. FDG will call 2,000 add row events. unhooking from the feature layer will call 1 event to remove 4,000 then rehooking will raise 1 event to add 2,000. We already have an idea of how we can imporove the FeatureLayer and FeatureDataGrid so that it will perform better, so we will be looking into improving this performance problem.