使用棱镜和自定义标题栏时如何在MasterDetail页面中显示菜单

时间:2017-07-23 17:26:26

标签: xamarin xamarin.forms

我对Xamarin来说是全新的。

我正在开发一个Prism框架用于导航的项目(我的第一个xamarin项目)需求需要一个自定义标题栏。我已经按照本教程中的详细说明实现了它

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

现在使用prism导航,如何显示masterdetail页面菜单,即当用户单击自定义汉堡包图标时将MasterPage的IsPresented属性设置为true。

我现在已经阅读了几个小时,并且无法理解所提到的任何解决方案,也不能为我工作?有人可以在这里打破一个完整的初学者吗?

我到目前为止提到的一些链接

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

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

1 个答案:

答案 0 :(得分:0)

在您的母版页的ViewModel中只有一个布尔属性,我们将其命名为IsMenuPresented,然后在您的MasterPage XAML中:

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

如果您希望能够从代码中切换菜单,则可以:

1)做类似的事情

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

2)使用Prism's Event Aggregator订阅母版页的ViewModel中的事件,该事件将侦听从其他ViewModel中发布的true / false值,并相应地设置IsMenuPresented(从而显示/隐藏菜单)。