From cbc0755098ff4beefc223a051821fe5dbc7af2e2 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 26 Jun 2018 22:55:12 +0200 Subject: [PATCH] Move default value handling to AvaloniaObject. --- src/Avalonia.Base/AvaloniaObject.cs | 13 ++++++++++--- src/Avalonia.Base/ValueStore.cs | 5 ----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs index ee60bf5b78..761c0618da 100644 --- a/src/Avalonia.Base/AvaloniaObject.cs +++ b/src/Avalonia.Base/AvaloniaObject.cs @@ -225,7 +225,14 @@ namespace Avalonia } else if (_values != null) { - return _values.GetValue(property); + var result = _values.GetValue(property); + + if (result == AvaloniaProperty.UnsetValue) + { + result = GetDefaultValue(property); + } + + return result; } else { @@ -645,8 +652,8 @@ namespace Avalonia /// The default value. internal object GetDefaultValue(AvaloniaProperty property) { - if (property.Inherits && InheritanceParent is AvaloniaObject aobj && aobj._values != null) - return aobj._values.GetValue(property); + if (property.Inherits && InheritanceParent is AvaloniaObject aobj) + return aobj.GetValue(property); return ((IStyledPropertyAccessor) property).GetDefaultValue(GetType()); } diff --git a/src/Avalonia.Base/ValueStore.cs b/src/Avalonia.Base/ValueStore.cs index e1e399b4b3..8283edab80 100644 --- a/src/Avalonia.Base/ValueStore.cs +++ b/src/Avalonia.Base/ValueStore.cs @@ -110,11 +110,6 @@ namespace Avalonia result = (value is PriorityValue priorityValue) ? priorityValue.Value : value; } - if (result == AvaloniaProperty.UnsetValue) - { - result = _owner.GetDefaultValue(property); - } - return result; }