覆盖自定义渲染器Xamarin中的OnDisappearing。形式

时间:2015-04-09 06:48:33

标签: xamarin.forms custom-renderer

我想在Xamarin.Forms的Android项目中调用onDisappearing()上的base.Dispose()。

我做过这样的事情: -

命名空间Project.Mobile.Droid

{
    [assembly: ExportRenderer(typeof(ItemListPage), typeof(DisposeRenderer))]
    class DisposeRenderer : ViewRenderer
    {
          public DisposeRenderer() { }

    }
}

我怎样才能继续这样做? 我是Xamarin.Forms的新手,所以如果有人帮助我,这将是一个很大的帮助。

1 个答案:

答案 0 :(得分:0)

只要您的ItemListPage实现了IDisposable,您就可以尝试以下方法: -

using System;
using DisposableControlSample;
using DisposableControlSample.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

[assembly: ExportRenderer(typeof(DisposablePage), typeof(DisposablePageRenderer))]
namespace DisposableControlSample.Droid
{
    public class DisposablePageRenderer : PageRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
        {
            base.OnElementChanged(e);

            e.NewElement.Disappearing += (sender, args) =>
            {
                var disposablePage = sender as IDisposable;

                if (disposablePage != null)
                {
                    disposablePage.Dispose();
                }
            };
        }
    }
}