lvin
lvin

Reputation: 290

How to show Menu in MasterDetail Page when using Prism and Custom Title bar

I am completely new to Xamarin.

I am working on a project where Prism framework is used for navigation (my first xamarin project) The requirement needed a custom title bar. I have implemented it as detailed out in this tutorial

https://wolfprogrammer.com/2016/07/07/custom-app-header-in-forms/

Now with prism navigation, how to show the masterdetail page menu i.e. set the IsPresented property of MasterPage to true when the user clicks the custom hamburger icon.

I have been reading about this for hours now and not able to understand any of the solutions mentioned nor are they working for me? Could someone please break it down for a complete beginner here?

Some links that I have referred so far

https://forums.xamarin.com/discussion/93409/prism-how-show-hide-programmatically-the-masterdetailpage-menu

https://github.com/PrismLibrary/Prism/issues/570

Upvotes: 2

Views: 1271

Answers (1)

Mark Z.
Mark Z.

Reputation: 2447

Just have a boolean property in your Master page's ViewModel, let's call it IsMenuPresented, then in your MasterPage XAML:

<MasterDetailPage
    x:Class="YourProject.Views.MasterPage"
    ...
    MasterBehavior="Popover"
    IsPresented="{Binding IsMenuPresented, Mode=TwoWay}">

If you want to be able to toggle the menu from code, you can either:

1) do something like

(App.Current.MainPage is MasterDetailPage mainPage).IsPresented = true;

2) Use Prism's Event Aggregator to subscribe to an event in the Master Page's ViewModel that will listen for a true/false value that gets published from some other ViewModel and set IsMenuPresented accordingly (thereby showing/hiding the menu).

Upvotes: 1

Related Questions