internal Property(IUndoRedoService undoRedoService, INotifyPropertyChanged propertyOwnerObj, PropertyInfo propertyInfo, RecordedElement initialPropertyValue, IsRecordableAttribute isRecordableAttribute) { if (undoRedoService == null) { throw new ArgumentNullException("undoRedoService"); } if (propertyOwnerObj == null) { throw new ArgumentNullException("propertyOwnerObj"); } if (propertyInfo == null) { throw new ArgumentNullException("propertyInfo"); } if (initialPropertyValue == null) { throw new ArgumentNullException("initialPropertyValue"); } if (isRecordableAttribute == null) { throw new ArgumentNullException("isRecordableAttribute"); } _undoRedoService = undoRedoService; _propertyOwnerObj = propertyOwnerObj; _propertyInfo = propertyInfo; _value = initialPropertyValue; _isRecordableAttribute = isRecordableAttribute; }
internal static Property Create(IUndoRedoService undoRedoService, INotifyPropertyChanged objAsNotifyPropertyChanged, IsRecordableAttribute isRecordableAttribute, PropertyInfo propertyInfo) { var recordableWithFilterAttribute = isRecordableAttribute as IsRecordableWithFilterAttribute; Property property; if (recordableWithFilterAttribute != null) { property = new FilteredChangeRecordProperty(undoRedoService, objAsNotifyPropertyChanged, propertyInfo, RecordedElementFactory.Create(undoRedoService, propertyInfo.GetValue(objAsNotifyPropertyChanged, null)), recordableWithFilterAttribute); } else { property = new EveryChangeRecordProperty(undoRedoService, objAsNotifyPropertyChanged, propertyInfo, RecordedElementFactory.Create(undoRedoService, propertyInfo.GetValue(objAsNotifyPropertyChanged, null)), isRecordableAttribute); } return(property); }
internal EveryChangeRecordProperty(IUndoRedoService undoRedoService, INotifyPropertyChanged propertyOwnerObj, PropertyInfo propertyInfo, RecordedElement initialPropertyValue, IsRecordableAttribute isRecordableAttribute) : base(undoRedoService, propertyOwnerObj, propertyInfo, initialPropertyValue, isRecordableAttribute) { }