| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | using System;using System.Linq;namespace InABox.Core{        public interface IEnclosedEntity : ISubObject    {    }        public abstract class EnclosedEntity : BaseObject, IEnclosedEntity    {        private BaseObject _linkedParent;        private string _linkedPath;        public void SetLinkedParent(BaseObject parent)        {            _linkedParent = parent;        }        public void SetLinkedPath(string path)        {            _linkedPath = path;        }        public BaseObject GetLinkedParent() => _linkedParent;        public string GetLinkedPath() => _linkedPath;                protected override void DoPropertyChanged(string name, object? before, object? after)        {            if (IsObserving())            {                if (LinkedProperties.Find(this, name, out var link, out var parent))                {                    link.Update(this, parent);                }            }        }    }}
 |