namespace PCL.Core.App.Configuration;
///
/// 配置项事件参数。
///
/// 配置项。
/// 触发事件。
/// 上下文参数。
/// 旧值。
/// 新值。
public record ConfigEventArgs(
ConfigItem Item,
ConfigEvent Event,
object? Argument,
object? OldValue,
object? NewValue
) {
///
/// 设置一个新值代替原来的值进行对应操作,只在 为 true 时有效。
///
public object? NewValueReplacement { get; set; } = null;
///
/// 是否取消事件,只在 为 true 时有效。
///
public bool Cancelled { get; set; } = false;
///
/// 配置当前的值。
///
public object? Value => NewValueReplacement ?? NewValue;
}