コード例 #1
0
        protected override void Init()
        {
            s_lbl = new Label {
                AutomationId = "lblDisposedCound"
            };
            var tab1 = new DisposePage {
                Title = "Tab1"
            };
            var tab2 = new DisposePage {
                Title = "Tab2"
            };

            tab1.RendererDisposed += HandleDispose;
            tab2.RendererDisposed += HandleDispose;

            tab2.PopAction = tab1.PopAction = async() => await Navigation.PopAsync();

            var tabbedPage = new TabbedPage {
                Children = { tab1, tab2 }
            };
            var btm = new Button {
                Text = "Push"
            };

            btm.Clicked += async(object sender, EventArgs e) => {
                await Navigation.PushAsync(tabbedPage);
            };

            Content = new StackLayout {
                Children = { btm, s_lbl }
            };
        }
コード例 #2
0
ファイル: DisposeGallery.cs プロジェクト: MIliev11/Samples
        public DisposeGallery()
        {
            var disposePage = new DisposePage();

            var pushButton = new Button {
                Text = "Push disposable page"
            };
            var pushModalButton = new Button {
                Text = "PushModal disposable page"
            };

            pushButton.Clicked += (sender, args) => {
                disposePage.PopAction = () => Navigation.PopAsync();
                Navigation.PushAsync(disposePage);
            };
            pushModalButton.Clicked += (sender, args) => {
                disposePage.PopAction = () => Navigation.PopModalAsync();
                Navigation.PushModalAsync(disposePage);
            };

            var appearingLabel = new Label {
                Text = "Appearing not sent"
            };
            var disappearingLabel = new Label {
                Text = "Disappearing not sent"
            };

            var disposedPageLabel = new Label {
                Text = "Page renderer not yet disposed"
            };
            var disposedLabelsLabel = new Label {
                Text = "Number of disposed labels: 0"
            };

            disposePage.Appearing        += (sender, args) => appearingLabel.Text = "Appearing sent";
            disposePage.Disappearing     += (sender, args) => disappearingLabel.Text = "Disappearing sent";
            disposePage.RendererDisposed += (sender, args) => {
                disposedPageLabel.Text = "Page renderer disposed";
                // give some time for this to propogate
                Device.StartTimer(TimeSpan.FromSeconds(1), () => {
                    disposedLabelsLabel.Text = "Number of disposed labels: " + disposePage.DisposedLabelCount;
                    return(false);
                });
            };

            Content = new StackLayout {
                Padding  = new Thickness(20),
                Children =
                {
                    pushButton,
                    pushModalButton,
                    appearingLabel,
                    disappearingLabel,
                    disposedLabelsLabel,
                    disposedPageLabel
                }
            };
        }