diff options
Diffstat (limited to 'Xamarin.Forms.Platform.iOS/VisualElementPackager.cs')
-rw-r--r-- | Xamarin.Forms.Platform.iOS/VisualElementPackager.cs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs b/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs index 7f511d9d..0aefc482 100644 --- a/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs +++ b/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs @@ -14,6 +14,8 @@ namespace Xamarin.Forms.Platform.iOS bool _isDisposed; + IElementController ElementController => Renderer.Element as IElementController; + public VisualElementPackager(IVisualElementRenderer renderer) { if (renderer == null) @@ -33,9 +35,9 @@ namespace Xamarin.Forms.Platform.iOS public void Load() { - for (var i = 0; i < Renderer.Element.LogicalChildren.Count; i++) + for (var i = 0; i < ElementController.LogicalChildren.Count; i++) { - var child = Renderer.Element.LogicalChildren[i] as VisualElement; + var child = ElementController.LogicalChildren[i] as VisualElement; if (child != null) OnChildAdded(child); } @@ -90,12 +92,12 @@ namespace Xamarin.Forms.Platform.iOS void EnsureChildrenOrder() { - if (Renderer.Element.LogicalChildren.Count == 0) + if (ElementController.LogicalChildren.Count == 0) return; - for (var z = 0; z < Renderer.Element.LogicalChildren.Count; z++) + for (var z = 0; z < ElementController.LogicalChildren.Count; z++) { - var child = Renderer.Element.LogicalChildren[z] as VisualElement; + var child = ElementController.LogicalChildren[z] as VisualElement; if (child == null) continue; var childRenderer = Platform.GetRenderer(child); @@ -152,9 +154,11 @@ namespace Xamarin.Forms.Platform.iOS } else { - for (var i = 0; i < oldElement.LogicalChildren.Count; i++) + var elementController = ((IElementController)oldElement); + + for (var i = 0; i < elementController.LogicalChildren.Count; i++) { - var child = oldElement.LogicalChildren[i] as VisualElement; + var child = elementController.LogicalChildren[i] as VisualElement; if (child != null) OnChildRemoved(child); } |