summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.WinRT/PageRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.WinRT/PageRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.WinRT/PageRenderer.cs17
1 files changed, 8 insertions, 9 deletions
diff --git a/Xamarin.Forms.Platform.WinRT/PageRenderer.cs b/Xamarin.Forms.Platform.WinRT/PageRenderer.cs
index d33ff028..708c13b2 100644
--- a/Xamarin.Forms.Platform.WinRT/PageRenderer.cs
+++ b/Xamarin.Forms.Platform.WinRT/PageRenderer.cs
@@ -15,6 +15,8 @@ namespace Xamarin.Forms.Platform.WinRT
bool _loaded;
+ IPageController PageController => Element as IPageController;
+
protected override void Dispose(bool disposing)
{
if (!disposing || _disposed)
@@ -24,13 +26,13 @@ namespace Xamarin.Forms.Platform.WinRT
if (Element != null)
{
- ReadOnlyCollection<Element> children = Element.LogicalChildren;
+ ReadOnlyCollection<Element> children = ((IElementController)Element).LogicalChildren;
for (var i = 0; i < children.Count; i++)
{
var visualChild = children[i] as VisualElement;
visualChild?.Cleanup();
}
- Element?.SendDisappearing();
+ PageController?.SendDisappearing();
}
base.Dispose();
@@ -40,10 +42,7 @@ namespace Xamarin.Forms.Platform.WinRT
{
base.OnElementChanged(e);
- if (e.OldElement != null)
- {
- e.OldElement.SendDisappearing();
- }
+ ((IPageController)e.OldElement)?.SendDisappearing();
if (e.NewElement != null)
{
@@ -56,7 +55,7 @@ namespace Xamarin.Forms.Platform.WinRT
}
if (_loaded)
- e.NewElement.SendAppearing();
+ ((IPageController)e.NewElement).SendAppearing();
}
}
@@ -68,13 +67,13 @@ namespace Xamarin.Forms.Platform.WinRT
return;
}
_loaded = true;
- Element?.SendAppearing();
+ PageController?.SendAppearing();
}
void OnUnloaded(object sender, RoutedEventArgs args)
{
_loaded = false;
- Element?.SendDisappearing();
+ PageController?.SendDisappearing();
}
}
} \ No newline at end of file