Как вызвать метод другого класса из класса difnet в Xamarin - PullRequest
0 голосов
/ 08 октября 2018

Я новичок в xamarin.forms.

На главной странице у меня есть кнопка «Выбрать фотографии».Когда пользователь нажимает всплывающее окно с количеством изображений.Когда пользователь нажимает и всплывающее окно закрывается.

Я хочу сделать, когда всплывающее окно близко;Я хочу отобразить выбранное изображение на главной странице, чтобы пользователь знал, какое изображение они выбрали.

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

Это код, когда пользователь нажимает на изображение

        public void Idpty1(object sender, EventArgs args)
        {
            Signtype = "1";

            //save the image name as variable
            SelectedTypeImage = "idpty1.png";

            //On the Newphoto page; call close popup function. 
            new NewPhotoPage().ClosePopover();
}

Это функция на главной странице, и я пытаюсь вызвать еефункция с вышеуказанной функцией.

 public void ClosePopover()
     {

       //Close the popover 
       PopupNavigation.Instance.PopAsync();

       //Get the variable which was set on the popover page (image name)
       SelectedTypeImage = MyPopupPage.SelectedTypeImage;

        // Source the image from variable. 
        SelectedType.Source = SelectedTypeImage ;


        //DisplayAlert("Alert2", SelectedTypeImage, "ok");

         System.Diagnostics.Debug.WriteLine("test");
    }

Это код изображения на главной странице

<Image x:Name="SelectedType" Resources=""></Image>

В приведенном выше коде;Часть изображения не работает, источник изображения не работает, также не отображается предупреждение.НО СИСТЕМА. ОТЛАДКА РАБОТАЕТ.

Что я не понимаю, так это то, что функция получает вызов, но даже отображение предупреждения не работает.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

На странице Newphoto просто вызовите метод ClosePopover как:

YOURCLASSNAME.ClosePopover();

, предполагая, что они находятся в одном пространстве имен.Иначе, используйте using, чтобы добавить пространство имен вашего класса.Дайте мне знать, если вам нужно больше разъяснений.

0 голосов
/ 08 октября 2018

Я использую что-то вроде

public void Idpty1(object sender, EventArgs args)
        {
            Signtype = "1";

            //save the image name as variable
            SelectedTypeImage = "idpty1.png";

            //On the Newphoto page; call close popup function. 
           // new NewPhotoPage().ClosePopover();
Xamarin.Forms.MessagingCenter.Send<App> ((App)Xamarin.Forms.Application.Current, "CallMethod");
}

в конструкторе главной страницы.

MessagingCenter.Subscribe(this, "CallMethod", (sender) => {
// do something
ClosePopover();  // <-- run u' method.
});
...