title: DataGrid and MVVM with Undo/Redo
body: <p>I'm playing with quite simple interface with buttons and shortcuts for adding, inserting and removing rows of datagrid (underlying bound collection).
  There's also a need to implement undo stack.
  But...I have no idea how to do with internal logic of this control. 
  By default DataGrid can remove or add new row automatically and performs many other things on user input (Esc,F2 and so on) thus implicitly changing the bound data.</p>
  
  <p>As commands are to be executed on the VM side undo stack is its (or even M's) business either, yet DataGrid contains internally predefined bindings to DataGrid. commands. And I see no easy mean of 'watching' the changes to the data.</p>
  
  <p>My understanding of the ideal MVVM flow is like that:
  User action (View) -> Command (VM) -> Commmand Excution + Undo stack operations. (VM-M)
  -> UI changes respectively to VM changes.</p>
  
  <p>I'm confused and need some good advice concerning the implementation.</p>