Как передать параметр из главной страницы на все страницы формы xamarin - PullRequest
0 голосов
/ 27 мая 2018

У меня есть мастер-страница, которая появляется после нажатия на кнопку.

Вот мой код.

App.cs

public App()
 {
   // The root page of your application
   MainPage = new NavigationPage(new Login());
 }

Login.cs

public void button(object sender, EventArgs e)
 {
   MasterDetailPage fpm = new MasterDetailPage();
   fpm.Master = new MasterPage(**test.Text**) { Title = "Main Page" }; // You have to create a Master ContentPage()
   fpm.Detail = new NavigationPage(new PageOne()); // You have to create a Detail ContenPage()
   Application.Current.MainPage = fpm;
 }

Со страницы входа я передаю параметр вMasterpage (т.е.) test.text , я хочу передать этот параметр всем страницам в Mastepage, но я не знаю, как это сделать.

MasterPage.cs

public MasterPage(string id)
 {
   InitializeComponent();
   BindingContext = new MasterViewModel();
 }

MasterViewModel.cs

public ICommand NavigationCommand
 {
  get
   {
     return new Command((value) =>
      {
        // COMMENT: This is just quick demo code. Please don't put this in a production app.
        var mdp = (Application.Current.MainPage as MasterDetailPage);
        var navPage = mdp.Detail as NavigationPage;
        // Hide the Master page
        mdp.IsPresented = false;
         switch(value)
          {
            case "1":
                    navPage.PushAsync(new PageOne());
                    break;
            case "2":
                    navPage.PushAsync(new PageTwo());
                    break;
          }
      });
   }
}

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

1 Ответ

0 голосов
/ 28 мая 2018

Вы можете использовать Центр сообщений .

Вы отправляете так:

MessagingCenter.Send<MainPage> (this, "Hi");

Вы получаете вот так:

MessagingCenter.Subscribe<MainPage> (this, "Hi", (sender) => {
    // do something whenever the "Hi" message is sent
});

И не забудьте отписаться:

MessagingCenter.Unsubscribe<MainPage> (this, "Hi");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...