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);
- }
- }
- }
- }
- }
|