示例#1
0
        public void Copy(object original, CopyService copyService)
        {
            var org = (TrackableEvent)original;

            // create a copy without handlers
            _changeTracker = copyService.Copy(org._changeTracker);
            _handlers      = new TrackableList <Action>();
            _handlers.Initialize(_changeTracker);
        }
示例#2
0
        public void Copy(object original, CopyService copyService)
        {
            var org = (Publisher)original;

            _changeTracker      = copyService.Copy(org._changeTracker);
            _eventsCache        = org._eventsCache;
            _subscribersByEvent = new Dictionary <Type, TrackableList <object> >();

            foreach (var subscriber in org._subscribersByEvent)
            {
                var subscribers = subscriber.Value
                                  .Where(x => IsUiComponent(x) == false)
                                  .Select(copyService.Copy);

                var trackableSubscribers = new TrackableList <object>(subscribers);
                trackableSubscribers.Initialize(_changeTracker);
                _subscribersByEvent.Add(subscriber.Key, trackableSubscribers);
            }
        }
示例#3
0
 public void Initialize(INotifyChangeTracker changeTracker)
 {
     _changeTracker = changeTracker;
     _handlers.Initialize(changeTracker);
 }
示例#4
0
 public TrackableEvent Initialize(INotifyChangeTracker changeTracker)
 {
     _changeTracker = changeTracker;
     _handlers.Initialize(changeTracker);
     return(this);
 }