/// <summary> Constructor. </summary>
        /// <param name="owner"> The owner of the list of tracked items. </param>
        /// <param name="changedDelegate"> The delegate to subscribe to the Changed event. </param>
        public ObjectTracker(AttachedBehavior owner, Action changedDelegate)
            : this(owner)
        {
            if (changedDelegate == null)
            {
                throw new ArgumentNullException("changedDelegate");
            }

            Changed += changedDelegate;
        }
        /// <summary> Constructor. </summary>
        /// <param name="owner"> The owner of the list of tracked items. </param>
        public ObjectTracker(AttachedBehavior owner)
        {
            if (owner == null)
            {
                throw new ArgumentNullException("owner");
            }

            _owner             = owner;
            _currentlyTracking = new HashSet <T>();
        }