|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|