Я пытаюсь создать настраиваемую панель навигации. Я настроил панель навигации и назвал ее NavBar, а над ней добавил ContentView, содержащий текущую отображаемую страницу. Я создал общедоступную переменную, содержащую ContentView, например: public ContentView CurrentPage = new Featured();, и у меня есть StackLayout, настроенный на странице следующим образом:
var stacklayout = new StackLayout { Spacing = 0 };
stacklayout.Children.Add(CurrentPage);
stacklayout.Children.Add(NavBar);
Content = stacklayout;
У меня есть функция, которая вызывается при нажатии кнопки на моем NavBar для изменения значения CurrentPage, настроенной следующим образом:
void NavToBuy(object sender, EventArgs e)
{
CurrentPage = new Buy();
}
Но при нажатии кнопки ничего не происходит. Думаю, что значение меняется, а на экране не отображается. Есть ли способ исправить это? Спасибо за любую помощь заранее :)





Этот ответ был взят от пользователя Reddit brminnick1
You need to replace
CurrentPageinside of the StackLayout, which would look something like this:Device.BeginInvokeOnMainThread(() => stackLayout.Children[0] = new Buy());