using Avalonia.Data; #nullable enable namespace Avalonia.PropertyStore { /// /// Stores a value with local value priority in a or /// . /// /// The property type. internal class LocalValueEntry : IValue { private T _value; public LocalValueEntry(T value) => _value = value; public BindingPriority Priority => BindingPriority.LocalValue; Optional IValue.GetValue() => new Optional(_value!); public Optional GetValue(BindingPriority maxPriority) { return BindingPriority.LocalValue >= maxPriority ? _value! : Optional.Empty; } public void SetValue(T value) => _value = value; } }