diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs index f5d2a6b9c8..89123ad10e 100644 --- a/src/Avalonia.Base/AvaloniaObject.cs +++ b/src/Avalonia.Base/AvaloniaObject.cs @@ -459,7 +459,7 @@ namespace Avalonia { if (b.Instance(this, property, null) is not UntypedBindingExpressionBase expression) throw new NotSupportedException("Binding returned unsupported IBindingExpression."); - return GetValueStore().AddBinding(property, expression); + return GetValueStore().AddBinding(property, expression, priority); } else { diff --git a/src/Avalonia.Base/PropertyStore/ValueStore.cs b/src/Avalonia.Base/PropertyStore/ValueStore.cs index 2cd1ac98e9..584f7ac106 100644 --- a/src/Avalonia.Base/PropertyStore/ValueStore.cs +++ b/src/Avalonia.Base/PropertyStore/ValueStore.cs @@ -45,7 +45,8 @@ namespace Avalonia.PropertyStore public BindingExpressionBase AddBinding( AvaloniaProperty property, - UntypedBindingExpressionBase source) + UntypedBindingExpressionBase source, + BindingPriority? priorityOverride = null) { if (property.IsDirect) { @@ -57,7 +58,7 @@ namespace Avalonia.PropertyStore } else { - var priority = source.Priority; + var priority = priorityOverride ?? source.Priority; if (priority == BindingPriority.LocalValue) {