/// <summary> /// Регистрация объекта для отслеживания в нем изменений. /// </summary> /// <param name="trackingObject"></param> private void RegisterTrackingObject(IValidatableChangeTracking trackingObject) { //если объект еще не зарегистрирован. if (!_trackingObjects.Contains(trackingObject)) { //добавляем его в список. _trackingObjects.Add(trackingObject); //подписываемся на событие изменений его свойств trackingObject.PropertyChanged += TrackingObjectOnPropertyChanged; } }
/// <summary> /// Удаление трекинг-объекта из реестра отслеживания в нем изменений. /// </summary> /// <param name="trackingObject"></param> private void UnRegisterTrackingObject(IValidatableChangeTracking trackingObject) { //если объект зарегистрирован. if (_trackingObjects.Contains(trackingObject)) { //изымаем его из списока. _trackingObjects.Remove(trackingObject); //отписываемся от события изменений его свойств trackingObject.PropertyChanged -= TrackingObjectOnPropertyChanged; } }