From 6ea50d95fb725c726fa8dfa38282457144be1bb0 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 4 Jul 2024 00:22:17 +0200 Subject: [PATCH] Remove obsolete API usage. (#16220) --- .../Primitives/SelectingItemsControl.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs index 4f7e531834..202f4e0252 100644 --- a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs +++ b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs @@ -6,6 +6,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Avalonia.Controls.Selection; using Avalonia.Data; +using Avalonia.Data.Core; using Avalonia.Input; using Avalonia.Interactivity; using Avalonia.Metadata; @@ -1387,6 +1388,9 @@ namespace Avalonia.Controls.Primitives /// private class BindingHelper : StyledElement { + private BindingExpressionBase? _expression; + private IBinding? _lastBinding; + public BindingHelper(IBinding binding) { UpdateBinding(binding); @@ -1406,17 +1410,13 @@ namespace Avalonia.Controls.Primitives public void UpdateBinding(IBinding binding) { - _lastBinding = binding; - var ib = binding.Initiate(this, ValueProperty); - if (ib is null) - { - throw new InvalidOperationException("Unable to create binding"); - } + if (binding == _lastBinding) + return; - BindingOperations.Apply(this, ValueProperty, ib, null); + _expression?.Dispose(); + _expression = Bind(ValueProperty, binding); + _lastBinding = binding; } - - private IBinding? _lastBinding; } } }