Before I start I would specifically like to say a massive thanks to the following people, without whom this article and the subsequent series of articles would never have been possible. Basically what I have done with Cinch is studied most of these guys, seen what s hot, what s not, and come up with Cinch. Which I hope adresses some new ground not covered in other frameworks. | This is the a slightly easier Cinch base class to inherit from (its basically almost the same as what we just saw without the BeginEdit() / OnEndEdit() and OnCancelEdit() methods inherited from the IEditableObject) , as there is no support for editability. There is of course still the availability to allow the individual Model (or ViewModel) fields to be editable/read only by using the DataWrapper helpers, but that is your choice. Basically BeginEdit() copies the objects current values to a temporary storage, which has nothing to do with the DataWrapper helpers. The DataWrapper helpers simply allow the ViewModel to tell the View (through bindings) that a particular Model/ViewModel field should not be editable. They are 2 different things. There is some work to do to store the state of the DataWrapper helpers if you choose to use EditableValidatingObject the but that is mainly taken care of for you, as long as you use the static methods on the DataWrapperHelper class as demonstrated above.