maui-linux/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issu.../DisposedSharedPages.cs

71 строка
1.6 KiB
C#

using System;
using Xamarin.Forms;
namespace Xamarin.Forms.Controls
{
public class DisposePage : ContentPage
{
public event EventHandler RendererDisposed;
public void SendRendererDisposed ()
{
var handler = RendererDisposed;
if (handler != null)
handler (this, EventArgs.Empty);
}
public int DisposedLabelCount { get; private set; }
public Action PopAction { get; set; }
public DisposePage ()
{
var popButton = new Button {Text = "Pop"};
popButton.Clicked += (sender, args) => PopAction ();
var disposeLabel1 = new DisposeLabel {Text = "Label 1"};
var disposeLabel2 = new DisposeLabel {Text = "Label 2"};
var disposeLabel3 = new DisposeLabel {Text = "Label 3"};
var disposeLabel4 = new DisposeLabel {Text = "Label 4"};
var disposeLabel5 = new DisposeLabel {Text = "Label 5"};
EventHandler disposeHandler = (sender, args) => DisposedLabelCount++;
disposeLabel1.RendererDisposed += disposeHandler;
disposeLabel2.RendererDisposed += disposeHandler;
disposeLabel3.RendererDisposed += disposeHandler;
disposeLabel4.RendererDisposed += disposeHandler;
disposeLabel5.RendererDisposed += disposeHandler;
Content = new StackLayout {
Children = {
popButton,
disposeLabel1,
disposeLabel2,
disposeLabel3,
disposeLabel4,
new StackLayout {
Children = {
disposeLabel5,
}
}
}
};
}
}
public class DisposeLabel : Label
{
public event EventHandler RendererDisposed;
public void SendRendererDisposed ()
{
var handler = RendererDisposed;
if (handler != null)
handler (this, EventArgs.Empty);
}
}
}