diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs index 72a3fbe925..2bac41ea00 100644 --- a/src/Avalonia.Base/AvaloniaObject.cs +++ b/src/Avalonia.Base/AvaloniaObject.cs @@ -206,7 +206,15 @@ namespace Avalonia /// /// The property. /// The value. - public object? GetValue(AvaloniaProperty property) => property.RouteGetValue(this); + public object? GetValue(AvaloniaProperty property) + { + _ = property ?? throw new ArgumentNullException(nameof(property)); + + if (property.IsDirect) + return property.RouteGetValue(this); + else + return _values.GetValue(property); + } /// /// Gets a value. diff --git a/src/Avalonia.Base/PropertyStore/ValueStore.cs b/src/Avalonia.Base/PropertyStore/ValueStore.cs index ff1138ec1c..a99955eb07 100644 --- a/src/Avalonia.Base/PropertyStore/ValueStore.cs +++ b/src/Avalonia.Base/PropertyStore/ValueStore.cs @@ -2,12 +2,10 @@ using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -using Avalonia.Collections.Pooled; using Avalonia.Data; using Avalonia.Diagnostics; using Avalonia.Logging; using Avalonia.Utilities; -using JetBrains.Annotations; namespace Avalonia.PropertyStore {