From 4cc378ea0f96240930f950bd90ffa2ebec486e2e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 20 Jan 2020 11:13:37 +0100 Subject: [PATCH] Property store can be typed on IValue. --- src/Avalonia.Base/ValueStore.cs | 38 ++++++++++++--------------------- 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/src/Avalonia.Base/ValueStore.cs b/src/Avalonia.Base/ValueStore.cs index c0e704b6cc..2e2657086d 100644 --- a/src/Avalonia.Base/ValueStore.cs +++ b/src/Avalonia.Base/ValueStore.cs @@ -12,22 +12,19 @@ namespace Avalonia { private readonly AvaloniaObject _owner; private readonly IValueSink _sink; - private readonly AvaloniaPropertyValueStore _values; + private readonly AvaloniaPropertyValueStore _values; public ValueStore(AvaloniaObject owner) { _sink = _owner = owner; - _values = new AvaloniaPropertyValueStore(); + _values = new AvaloniaPropertyValueStore(); } public bool IsAnimating(AvaloniaProperty property) { if (_values.TryGetValue(property, out var slot)) { - if (slot is IValue v) - { - return v.ValuePriority < BindingPriority.LocalValue; - } + return slot.ValuePriority < BindingPriority.LocalValue; } return false; @@ -37,10 +34,7 @@ namespace Avalonia { if (_values.TryGetValue(property, out var slot)) { - if (slot is IValue v) - { - return v.Value.HasValue; - } + return slot.Value.HasValue; } return false; @@ -50,13 +44,12 @@ namespace Avalonia { if (_values.TryGetValue(property, out var slot)) { - if (slot is IValue v) + var v = (IValue)slot; + + if (v.Value.HasValue) { - if (v.Value.HasValue) - { - value = v.Value.Value; - return true; - } + value = v.Value.Value; + return true; } } @@ -133,14 +126,11 @@ namespace Avalonia { if (_values.TryGetValue(property, out var slot)) { - if (slot is IValue value) - { - return new Diagnostics.AvaloniaPropertyValue( - property, - value.Value.HasValue ? (object)value.Value : AvaloniaProperty.UnsetValue, - value.ValuePriority, - null); - } + return new Diagnostics.AvaloniaPropertyValue( + property, + slot.Value.HasValue ? (object)slot.Value : AvaloniaProperty.UnsetValue, + slot.ValuePriority, + null); } return null;