using Microsoft.UI.Xaml.Controls; namespace Ghost.Editor.Core.Inspector; public abstract class ComponentEditor { private ComponentObject _componentObject; /// /// Represents the underlying component object used by this class to manage its functionality. /// protected ComponentObject ComponentObject => _componentObject; internal void Initialize(ComponentObject componentObject) { _componentObject = componentObject; } /// /// Called when the component editor is created. /// /// The container to add the editor controls to. public virtual void Create(StackPanel container) { } /// /// Called when the component editor needs to update its UI based on the current state of the component data. /// public virtual void Update() { } /// /// Called when the component editor is destroyed. /// public virtual void Destroy() { } }