namespace Ghost.Editor.Core.Event; public delegate void ValueChangedEventHandler(object? sender, ValueChangedEventArgs args); public class ValueChangedEventArgs : EventArgs { public T OldValue { get; } public T NewValue { get; } public ValueChangedEventArgs(T oldValue, T newValue) { OldValue = oldValue; NewValue = newValue; } }