/// <summary>
 /// Cancels an edit.
 /// </summary>
 public void CancelEdit()
 {
     if (this.oldDataClass != null)
     {
         this.BoolProperty     = this.oldDataClass.boolProperty;
         this.DateTimeProperty = this.oldDataClass.dateTimeProperty;
         this.IntProperty      = this.oldDataClass.intProperty;
         this.IntPropertyWithoutAutoGenerateField = this.oldDataClass.intPropertyWithoutAutoGenerateField;
         this.NonGeneratedIntProperty             = this.oldDataClass.nonGeneratedIntProperty;
         this.StringProperty = this.oldDataClass.stringProperty;
         this.oldDataClass   = null;
     }
 }
 /// <summary>
 /// Begins an edit.
 /// </summary>
 public void BeginEdit()
 {
     if (this.oldDataClass == null)
     {
         this.oldDataClass = new DataClassWithReadOnlyAttribute();
         this.oldDataClass.boolProperty     = this.boolProperty;
         this.oldDataClass.dateTimeProperty = this.dateTimeProperty;
         this.oldDataClass.intProperty      = this.intProperty;
         this.oldDataClass.intPropertyWithoutAutoGenerateField = this.intPropertyWithoutAutoGenerateField;
         this.oldDataClass.nonGeneratedIntProperty             = this.nonGeneratedIntProperty;
         this.oldDataClass.stringProperty = this.stringProperty;
     }
 }
 /// <summary>
 /// Initializes the unchanged data class used in IRevertableChangeTracking.
 /// </summary>
 private void EnsureUnchangedDataClass()
 {
     if (this.unchangedDataClass == null)
     {
         this.unchangedDataClass = new DataClassWithReadOnlyAttribute();
         this.unchangedDataClass.boolProperty     = this.boolProperty;
         this.unchangedDataClass.dateTimeProperty = this.dateTimeProperty;
         this.unchangedDataClass.intProperty      = this.intProperty;
         this.unchangedDataClass.intPropertyWithoutAutoGenerateField = this.intPropertyWithoutAutoGenerateField;
         this.unchangedDataClass.nonGeneratedIntProperty             = this.nonGeneratedIntProperty;
         this.unchangedDataClass.stringProperty = this.stringProperty;
     }
 }
 /// <summary>
 /// Ends an edit.
 /// </summary>
 public void EndEdit()
 {
     this.oldDataClass = null;
 }
 /// <summary>
 /// Cancels an edit.
 /// </summary>
 public void CancelEdit()
 {
     if (this.oldDataClass != null)
     {
         this.BoolProperty = this.oldDataClass.boolProperty;
         this.DateTimeProperty = this.oldDataClass.dateTimeProperty;
         this.IntProperty = this.oldDataClass.intProperty;
         this.IntPropertyWithoutAutoGenerateField = this.oldDataClass.intPropertyWithoutAutoGenerateField;
         this.NonGeneratedIntProperty = this.oldDataClass.nonGeneratedIntProperty;
         this.StringProperty = this.oldDataClass.stringProperty;
         this.oldDataClass = null;
     }
 }
 /// <summary>
 /// Begins an edit.
 /// </summary>
 public void BeginEdit()
 {
     if (this.oldDataClass == null)
     {
         this.oldDataClass = new DataClassWithReadOnlyAttribute();
         this.oldDataClass.boolProperty = this.boolProperty;
         this.oldDataClass.dateTimeProperty = this.dateTimeProperty;
         this.oldDataClass.intProperty = this.intProperty;
         this.oldDataClass.intPropertyWithoutAutoGenerateField = this.intPropertyWithoutAutoGenerateField;
         this.oldDataClass.nonGeneratedIntProperty = this.nonGeneratedIntProperty;
         this.oldDataClass.stringProperty = this.stringProperty;
     }
 }
 /// <summary>
 /// Initializes the unchanged data class used in IRevertableChangeTracking.
 /// </summary>
 private void EnsureUnchangedDataClass()
 {
     if (this.unchangedDataClass == null)
     {
         this.unchangedDataClass = new DataClassWithReadOnlyAttribute();
         this.unchangedDataClass.boolProperty = this.boolProperty;
         this.unchangedDataClass.dateTimeProperty = this.dateTimeProperty;
         this.unchangedDataClass.intProperty = this.intProperty;
         this.unchangedDataClass.intPropertyWithoutAutoGenerateField = this.intPropertyWithoutAutoGenerateField;
         this.unchangedDataClass.nonGeneratedIntProperty = this.nonGeneratedIntProperty;
         this.unchangedDataClass.stringProperty = this.stringProperty;
     }
 }
 /// <summary>
 /// Ends an edit.
 /// </summary>
 public void EndEdit()
 {
     this.oldDataClass = null;
 }