зеркало из https://github.com/DeGsoft/maui-linux.git
71 строка
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|