title: A better way to allow user to save only if the data changed?
body: <p>What I did before was make a deep copy of the data object, then write a generic compare method that uses reflector to compares if there is difference betweens the two objects.</p>
  
  <p>So say if I have a SaveButton, a TextBoxA binded with a ViewModel.PropertyA, initialy PropertyA is = "123".</p>
  
  <p>When user typed "1234" in TextBoxA, the PropertyA set method will executes the compare method to find the difference. And enable the Save Button.</p>
  
  <p>But when the user changed the text "1234" back to "123", the Save button will disabled again.</p>
  
  <p>After 1 year, now I wonder is there a better way or easier way to do it? 
  i.e. Is there any framework that will do this kind of stuff?  So I don't have write code for deep copy the object, write compares method myself?</p>
  
  <hr>
  
  <p>The actual UI I had was not that simple only contains TextBox type, that was a UI for edit customer information, thus have DateTime, Collection etc.  That's why I wrote deep copy method for cloning the whole object.</p>