Well, in the GetRow() helper thread, vinsibal mentions using dataGrid.Items.Add() so that one can presumably be used to add rows...?

Is it possible to manipulate dataGrid.Items in other ways? Ie. to move rows and to delete rows? And if it is, and if it works, is it better or worse than manipulating the model? (and why is it better or worse?)

I tried implementing the Up and Down buttons by manipulating dataGrid.Items instead of the model. But then I got the following exception:
System.InvalidOperationException: Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead.

And ItemsSource has a data binding on it.

So presumably the correct way (and it also feels like the correct way), is to manipulate the model.

So why am I getting the stack trace referred to earlier in this thread? Am I missing something? Isn't calling UpdateTarget sufficient?