Browse Source

Handle GetBindingObservable<object>().

pull/3287/head
Steven Kirk 7 years ago
parent
commit
60422d621b
  1. 22
      src/Avalonia.Base/Reactive/AvaloniaPropertyBindingObservable.cs

22
src/Avalonia.Base/Reactive/AvaloniaPropertyBindingObservable.cs

@ -48,13 +48,25 @@ namespace Avalonia.Reactive
{
if (e.Property == _property)
{
var typedArgs = (AvaloniaPropertyChangedEventArgs<T>)e;
var newValue = e.Sender.GetValue(typedArgs.Property);
if (e is AvaloniaPropertyChangedEventArgs<T> typedArgs)
{
var newValue = e.Sender.GetValue(typedArgs.Property);
if (!typedArgs.OldValue.HasValue || !EqualityComparer<T>.Default.Equals(newValue, _value))
if (!typedArgs.OldValue.HasValue || !EqualityComparer<T>.Default.Equals(newValue, _value))
{
_value = newValue;
PublishNext(_value);
}
}
else
{
_value = newValue;
PublishNext(_value);
var newValue = e.Sender.GetValue(e.Property);
if (!Equals(newValue, _value))
{
_value = (T)newValue;
PublishNext(_value);
}
}
}
}

Loading…
Cancel
Save