Xamarin Forms MasterDetailPage динамически меняет мастер - PullRequest
0 голосов
/ 09 марта 2019

Я использую навигацию по умолчанию MasterDetailPage в моем приложении Xamarin, где master - боковая навигация, а подробности - страницы контента, на которые пользователь может перейти.

Я уже добавил код к MenuPage:

public MenuPage()
        {
            InitializeComponent();


            if (ProfilPage.loggedin)
            {
                ucet_stack.IsVisible = true;
                ucet.IsVisible = true;
                ucet.Text = "Váš účet " + ProfilPage.meno;
            }
            else
            {
                ucet_stack.IsVisible = false;
                ucet.IsVisible = false;
            }
        }

Я хочу изменить содержимое MenuPage после того, как пользователь войдет в систему. Конструктор вызывается только в первый раз, поэтому он никогда не изменяется. Я пытался поместить тот же код в onAppearing, но тоже не работал. Итак, что я могу использовать для динамического изменения меню после входа пользователя? Примечание Я довольно новичок в этом.

UPDATE:

Я создал второй MasterDetailPage с новым MenuPage и попытался изменить его на странице содержимого, которая является подробной, но она стала пустой

 if(ProfilPage.loggedin)
        {
            Application.Current.MainPage = new MainLoggedPage();
        } 

Ответы [ 2 ]

1 голос
/ 09 марта 2019

сначала получите ссылку на ваш текущий MenuPage

var md = (MasterDetailPage)Application.Current.MainPage;
var menu = (MenuPage)md.Master;

затем вызовите любой открытый метод, который вы создали, чтобы обновить его

menu.SetUserLogin();
0 голосов
/ 09 марта 2019

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

Нов случае, если вам это нужно, самое простое и даже самое чистое решение состоит в том, чтобы иметь две разные страницы сведений о мастере и назначать их корню в зависимости от ситуации.

Нельзя скрыть части мастерастраницы, но, как сказал @Jason, это не обычная практика, и я не знаю примеров для этого, особенно если вы не используете MVVM, и большинство приложений Xamarin сделаны именно так, вам, в основном, придется делатьСамо по себе, и его предложение о том, с чего начать, хорошее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...