Browse Source

Dont initialize transition instance dictionary on objects without Transitions on it.

pull/2517/head
Jumar Macato 8 years ago
parent
commit
3b93e72d45
No known key found for this signature in database GPG Key ID: B19884DAC3A5BF3F
  1. 21
      src/Avalonia.Animation/Animatable.cs

21
src/Avalonia.Animation/Animatable.cs

@ -36,16 +36,27 @@ namespace Avalonia.Animation
private Transitions _transitions; private Transitions _transitions;
private Dictionary<AvaloniaProperty, IDisposable> _previousTransitions private Dictionary<AvaloniaProperty, IDisposable> _previousTransitions;
= new Dictionary<AvaloniaProperty, IDisposable>();
/// <summary> /// <summary>
/// Gets or sets the property transitions for the control. /// Gets or sets the property transitions for the control.
/// </summary> /// </summary>
public Transitions Transitions public Transitions Transitions
{ {
get { return _transitions ?? (_transitions = new Transitions()); } get
set { SetAndRaise(TransitionsProperty, ref _transitions, value); } {
if (_transitions == null)
_transitions = new Transitions();
if (_previousTransitions == null)
_previousTransitions = new Dictionary<AvaloniaProperty, IDisposable>();
return _transitions;
}
set
{
SetAndRaise(TransitionsProperty, ref _transitions, value);
}
} }
/// <summary> /// <summary>
@ -55,7 +66,7 @@ namespace Avalonia.Animation
/// <param name="e">The event args.</param> /// <param name="e">The event args.</param>
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e) protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e)
{ {
if (e.Priority != BindingPriority.Animation && Transitions != null) if (e.Priority != BindingPriority.Animation && Transitions != null && _previousTransitions != null)
{ {
var match = Transitions.FirstOrDefault(x => x.Property == e.Property); var match = Transitions.FirstOrDefault(x => x.Property == e.Property);

Loading…
Cancel
Save