using System; using Avalonia.Data; #nullable enable namespace Avalonia.PropertyStore { /// /// Stores a value with a priority in a or /// . /// /// The property type. internal class ConstantValueEntry : IPriorityValueEntry, IDisposable { private IValueSink _sink; public ConstantValueEntry( StyledPropertyBase property, T value, BindingPriority priority, IValueSink sink) { Property = property; Value = value; Priority = priority; _sink = sink; } public StyledPropertyBase Property { get; } public BindingPriority Priority { get; } public Optional Value { get; } Optional IValue.Value => Value.ToObject(); BindingPriority IValue.ValuePriority => Priority; public void Dispose() => _sink.Completed(Property, this, Value); public void Reparent(IValueSink sink) => _sink = sink; } }