diff --git a/src/Uno.UI/UI/Xaml/DependencyObjectStore.cs b/src/Uno.UI/UI/Xaml/DependencyObjectStore.cs index 96a44e7fba6d..0383d1fbadcd 100644 --- a/src/Uno.UI/UI/Xaml/DependencyObjectStore.cs +++ b/src/Uno.UI/UI/Xaml/DependencyObjectStore.cs @@ -779,13 +779,13 @@ internal IDisposable RegisterPropertyChangedCallback(DependencyProperty property if (ReferenceEquals(callback.Target, ActualInstance)) { - return propertyDetails.CallbackManager.RegisterCallback(callback); + return propertyDetails.RegisterCallback(callback); } else { CreateWeakDelegate(callback, out var weakCallback, out var weakDelegateRelease); - var cookie = propertyDetails.CallbackManager.RegisterCallback(weakCallback); + var cookie = propertyDetails.RegisterCallback(weakCallback); return new RegisterPropertyChangedCallbackForPropertyConditionalDisposable( callback, @@ -1905,7 +1905,7 @@ private void InvokeCallbacks( } // Raise the changes for the callbacks register through RegisterPropertyChangedCallback. - propertyDetails.CallbackManager.RaisePropertyChanged(actualInstanceAlias, eventArgs); + propertyDetails.RaisePropertyChanged(actualInstanceAlias, eventArgs); // Raise the property change for generic handlers for (var callbackIndex = 0; callbackIndex < _genericCallbacks.Data.Length; callbackIndex++) diff --git a/src/Uno.UI/UI/Xaml/DependencyPropertyDetails.cs b/src/Uno.UI/UI/Xaml/DependencyPropertyDetails.cs index 44f1182a0f07..366e59219b8d 100644 --- a/src/Uno.UI/UI/Xaml/DependencyPropertyDetails.cs +++ b/src/Uno.UI/UI/Xaml/DependencyPropertyDetails.cs @@ -52,8 +52,6 @@ public void Dispose() } } - public DependencyPropertyCallbackManager CallbackManager => _callbackManager ??= new DependencyPropertyCallbackManager(); - public DependencyProperty Property { get; } public PropertyMetadata Metadata => _metadata ??= Property.GetMetadata(_dependencyObjectType); @@ -372,6 +370,12 @@ public override string ToString() return $"DependencyPropertyDetails({Property.Name})"; } + internal IDisposable RegisterCallback(PropertyChangedCallback callback) + => (_callbackManager ??= new DependencyPropertyCallbackManager()).RegisterCallback(callback); + + internal void RaisePropertyChanged(DependencyObject actualInstanceAlias, DependencyPropertyChangedEventArgs eventArgs) + => _callbackManager?.RaisePropertyChanged(actualInstanceAlias, eventArgs); + [Flags] enum Flags {