пустая страница при использовании pushasyn c xamarin - PullRequest
1 голос
/ 18 июня 2020

как дела?

Я создал верхний класс ContentPage, наследующий класс ZXingScannerPage, чтобы иметь возможность создавать методы для лучшего упрощения кода. И в нем метод, который принимает в качестве параметра метку и ContentPage для установки данных, считываемых сканером.

       public String ScannResult { get; set; }
    }

    public class ScannerHelper : ZXingScannerPage
    {
        public  ScannerHelper() 
        {
            this.OnScanResult += (result) => {
                MessagingCenter.Send( new Message { ScannResult = result.Text }, "ScannResult");
                // Parar de escanear
                this.IsScanning = false;

                // Alert com o código escaneado
                Device.BeginInvokeOnMainThread(() => {
                    DisplayAlert("Código escaneado", result.Text, "OK");
                    Navigation.PopAsync(false);
                });
            };
        }

        public static void teste(Label label, ContentPage contentPage)
        {
            MessagingCenter.Subscribe<Message>(contentPage, "ScannResult", message => {
                label.Text = message.ScannResult;
            });
        }
    }
}

Пока все работает, но когда я вызываю этот класс на кнопке и запускаю позже экран берет данные и переходит к метке, но при переходе на другую страницу с помощью PushAsyn c страница пуста, и если я go вернусь на страницы и попытаюсь go перейти к следующей он пустой, и самое странное, если я оставлю приложение на своем мобильном телефоне, перейдя в меню и вернувшись к нему, страница будет нормальной. Пример: Страница A вызывает сканер и работает, на странице AI go на странице B, и она пуста, I go возвращается на страницу A и I go возвращается на страницу перед страницей A, а затем I go обратно к A - A, и теперь он белый.

Пример того, как я использую методы на кнопках и на странице:

{
            InitializeComponent();
            ScannerHelper.teste(lblNomeProduto, this);
        }

        private void ButtonScanner(object sender, EventArgs e)
        {
            Navigation.PushAsync(new ScannerHelper());
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...