using System.Diagnostics.CodeAnalysis; 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 { [AllowNull] private T _value; public LocalValueEntry([AllowNull] 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; } }