kerds78
kerds78

Reputation: 121

Switching ContentViews Xamarin.Forms

I am trying to create a custom navigation Bar. I have set up my Navigation Bar and called it NavBar, and added a ContentView above it containing the Current Displayed page. I have created a public variable containing the ContentView like so: public ContentView CurrentPage = new Featured(); and I have a StackLayout set up in the Page like so:

var stacklayout = new StackLayout { Spacing = 0 };
stacklayout.Children.Add(CurrentPage);
stacklayout.Children.Add(NavBar);
Content = stacklayout;

I have a function that is called when a button on my NavBar is pressed to change the value of CurrentPage, set up like this:

void NavToBuy(object sender, EventArgs e)
{
    CurrentPage = new Buy();
}

But when the button is pressed, nothing happens. I think that the value is being changed, but not displayed on the screen. Is there any way to fix this? Thanks for any help in advance :)

Upvotes: 1

Views: 1568

Answers (1)

kerds78
kerds78

Reputation: 121

This answer was taken from reddit user brminnick1

You need to replace CurrentPage inside of the StackLayout, which would look something like this:

Device.BeginInvokeOnMainThread(() => stackLayout.Children[0] = new Buy());

Upvotes: 3

Related Questions