/// <summary>
 ///
 /// </summary>
 /// <param name="attachedProperty"></param>
 /// <param name="value"></param>
 public void SetValue(AbstractAttachedProperty attachedProperty, object value)
 {
     _values[attachedProperty] = value;
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="attachedProperty"></param>
 public void RemoveValue(AbstractAttachedProperty attachedProperty)
 {
     _values.TryRemove(attachedProperty, out var _);
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="attachedProperty"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public bool TryGetValue(AbstractAttachedProperty attachedProperty, out object value)
        {
            var found = _values.TryGetValue(attachedProperty, out value);

            return(found);
        }