summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjuliuszint <julius.zint@awin-software.de>2017-06-26 20:29:23 +0200
committerJason Smith <jason.smith@xamarin.com>2017-06-26 11:29:23 -0700
commit3b11401558678a27d6c6f5103e58252de04761f0 (patch)
tree837ccc900863df401f3fc1d54bda40858a5a795f
parent4e4da6fee54a86ded0b623ee598a43a2609f1929 (diff)
downloadxamarin-forms-3b11401558678a27d6c6f5103e58252de04761f0.tar.gz
xamarin-forms-3b11401558678a27d6c6f5103e58252de04761f0.tar.bz2
xamarin-forms-3b11401558678a27d6c6f5103e58252de04761f0.zip
Unsubscribe from IDefinition.SizeChanged event when set via indexer (#1014)
* Unsubscribe from IDefinition.SizeChanged event when set via indexer * added bounds and null check to preserve original exception * index check for negative values
-rw-r--r--Xamarin.Forms.Core/DefinitionCollection.cs5
1 files changed, 4 insertions, 1 deletions
diff --git a/Xamarin.Forms.Core/DefinitionCollection.cs b/Xamarin.Forms.Core/DefinitionCollection.cs
index bf0e4d06..6310a421 100644
--- a/Xamarin.Forms.Core/DefinitionCollection.cs
+++ b/Xamarin.Forms.Core/DefinitionCollection.cs
@@ -83,6 +83,9 @@ namespace Xamarin.Forms
get { return _internalList[index]; }
set
{
+ if(index < _internalList.Count && _internalList[index] != null && index >= 0)
+ _internalList[index].SizeChanged -= OnItemSizeChanged;
+
_internalList[index] = value;
value.SizeChanged += OnItemSizeChanged;
OnItemSizeChanged(this, EventArgs.Empty);
@@ -106,4 +109,4 @@ namespace Xamarin.Forms
eh(this, EventArgs.Empty);
}
}
-} \ No newline at end of file
+}