Вызов функции действия из другого действия - PullRequest
0 голосов
/ 31 марта 2020

У меня есть два действия A и B, и я хотел бы вызвать функцию B из действия A. Как я могу это сделать? Поэтому я хотел бы вызвать эту функцию в действии А.

 public void LoadXMLData()
    {
        var assembly = typeof(MainPage).GetTypeInfo().Assembly;
        Stream stream = assembly.GetManifestResourceStream("xmlEXAMPLE.persons.xml");
        ObservableCollection<Person> PersonInformation;
        var serializer = new XmlSerializer(typeof(ObservableCollection<Person>));
        PersonInformation = (ObservableCollection<Person>)serializer.Deserialize(stream);
        MyListView.ItemsSource = PersonInformation;

    }

1 Ответ

1 голос
/ 01 апреля 2020

Является ли ваш проект xamarin.forms или xamarin. android?

Самый простой способ - установить для активности глобальное состояние c.

Если ваш проект - xamarin.forms , вы можете установить page на static:

public partial class Page1 : ContentPage
{
    public static Page1 Instance;
    public Page1()
    {
        InitializeComponent();
        Instance = this;
    }

    //here is the method you want call in Page2
    public void DoInPage2()
    {
     .......
    }
}

, тогда на Page2 вы можете позвонить как Page1.Instance.DoInPage2();

, если ваш проект xamarin. android, вы могли бы также установите activity на static

public class ActivityA: Activity
{
    public static ActivityA Instance;

    protected override void OnCreate(Bundle savedInstanceState)
    {

        base.OnCreate(savedInstanceState);

        SetContentView(....);
        Instance = this;
    }

    //here is the method you want call in ActivityB
    public void CallInActivityB()
    {
      ...
    }
}

, тогда вы можете вызвать его в ActivityB как ActivityA.Instance.CallInActivityB();

...